Skip to content

Calculate days spent per territory (like Schengen), warn about maximum stay overusage. The data is provided by YAML with nomads (persons), territories, stay limit per period, entry and exit dates.

License

Notifications You must be signed in to change notification settings

microdevops-com/nomad-calc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nomad-calc

Calculate days spent per territory (like Schengen), warn about maximum stay overusage. The data is provided by YAML with nomads (persons), territories, stay limit per period, entry and exit dates.

See Example YAML for the data example.

territories:
  Schengen:
    Ukraine: # per nationality
      maximum_stay: 90
      per_period: 180
  Türkiye:
    Ukraine:
      maximum_stay: 90
      per_period: 180
  Georgia:
    Ukraine:
      maximum_stay: 365 # without per_period we just check stays are not longer than maximum_stay

nomads:
  Eugene:
    nationality: Ukraine
  Olha:
    nationality: Ukraine

stays:
- entry_date: 2020-01-01
  exit_date: 2020-12-30 # 2020 is a leap year - 366 days
  territory: Georgia
  nomads:
    - Eugene
- entry_date: 2021-01-01
  exit_date: 2022-01-02
  territory: Georgia
  nomads:
    - Eugene
- entry_date: 2023-01-01
  exit_date: 2023-01-20
  territory: Schengen
  nomads:
    - Eugene
    - Olha
- entry_date: 2023-01-20
  exit_date: 2023-01-30
  territory: Türkiye
  nomads:
    - Eugene
- entry_date: 2023-01-21
  exit_date: 2023-04-05
  territory: Schengen
  nomads:
    - Olha

Example output based on this YAML:

$ ./nomad_calc.py --yaml example.yaml --date 2023-04-05
On Date: 2023-04-05 (all dates are inclusive)
Eugene:
  Schengen from 2022-10-08: 20
  Türkiye from 2022-10-08: 11
  Georgia from 2020-01-01 to 2020-12-30 stay OK: 365/365 days
  Georgia from 2021-01-01 to 2022-01-02 stay NOT OK: 367/365 days
Olha:
    2023-04-01: already stayed 91 days from maximum stay of 90 days
    2023-04-02: already stayed 92 days from maximum stay of 90 days
    2023-04-03: already stayed 93 days from maximum stay of 90 days
    2023-04-04: already stayed 94 days from maximum stay of 90 days
    2023-04-05: already stayed 95 days from maximum stay of 90 days
  Schengen from 2022-10-08: 95
  Türkiye from 2022-10-08: 0

The --check-exit-dates flag makes calculations for all exit dates.

About

Calculate days spent per territory (like Schengen), warn about maximum stay overusage. The data is provided by YAML with nomads (persons), territories, stay limit per period, entry and exit dates.

Resources

License

Stars

Watchers

Forks

Languages