airportsdata 20250706__tar.gz → 20250811__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airportsdata-20250706/airportsdata.egg-info → airportsdata-20250811}/PKG-INFO +1 -2
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata/__init__.py +2 -1
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata/airports.csv +12 -12
- {airportsdata-20250706 → airportsdata-20250811/airportsdata.egg-info}/PKG-INFO +1 -2
- airportsdata-20250811/pyproject.toml +319 -0
- airportsdata-20250706/pyproject.toml +0 -143
- {airportsdata-20250706 → airportsdata-20250811}/LICENSE +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/MANIFEST.in +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/README.rst +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata/iata_macs.csv +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata/py.typed +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata.egg-info/SOURCES.txt +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata.egg-info/dependency_links.txt +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/airportsdata.egg-info/top_level.txt +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/requirements.txt +0 -0
- {airportsdata-20250706 → airportsdata-20250811}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: airportsdata
|
|
3
|
-
Version:
|
|
3
|
+
Version: 20250811
|
|
4
4
|
Summary: Extensive database of location and timezone data for nearly every airport and landing strip in the world.
|
|
5
5
|
Author-email: Mike Borsetti <mike+airportsdata@borsetti.com>
|
|
6
6
|
Maintainer-email: Mike Borsetti <mike+airportsdata@borsetti.com>
|
|
@@ -37,7 +37,6 @@ Project-URL: Issues, https://github.com/mborsetti/airportsdata/issues
|
|
|
37
37
|
Project-URL: CI, https://github.com/mborsetti/airportsdata/actions
|
|
38
38
|
Keywords: airports,aerodromes,ICAO,IATA
|
|
39
39
|
Classifier: Development Status :: 5 - Production/Stable
|
|
40
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
41
40
|
Classifier: Programming Language :: Python
|
|
42
41
|
Classifier: Programming Language :: Python :: 3
|
|
43
42
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"""
|
|
4
4
|
Extensive database of location and timezone data for nearly every airport and landing strip in the world.
|
|
5
5
|
"""
|
|
6
|
+
|
|
6
7
|
from __future__ import annotations
|
|
7
8
|
|
|
8
9
|
import csv
|
|
@@ -11,7 +12,7 @@ from typing import Dict, Literal, TypedDict
|
|
|
11
12
|
|
|
12
13
|
__project_name__ = __package__
|
|
13
14
|
__min_python_version__ = (3, 10) # minimum version of Python required to run; supported until October 2025
|
|
14
|
-
__version__ = '
|
|
15
|
+
__version__ = '20250811' # numbering follows the release date
|
|
15
16
|
__author__ = 'Mike Borsetti <mike@borsetti.com>'
|
|
16
17
|
__copyright__ = 'Copyright 2020- Mike Borsetti'
|
|
17
18
|
__license__ = 'MIT'
|
|
@@ -14990,10 +14990,10 @@
|
|
|
14990
14990
|
"LECA","","La Nava - Corral De Ayllon Airport","Corral dev Ayllon","Castilla y León","ES",3280,41.4108,-3.44833,"Europe/Madrid",""
|
|
14991
14991
|
"LECD","","La Cerdanya Airport","Alp","Cataluña","ES",3586,42.3864,1.86667,"Europe/Madrid",""
|
|
14992
14992
|
"LECF","","Calaf-Sallavinera Airport","Sant Pere Sallavinera","Cataluña","ES",2355,41.7442,1.55694,"Europe/Madrid",""
|
|
14993
|
-
"LECH","CDT","
|
|
14993
|
+
"LECH","CDT","Castellón Airport","Castellón de la Plana","Comunidad Valenciana","ES",1182,40.214167,0.073667,"Europe/Madrid",""
|
|
14994
14994
|
"LECI","","Santa Cilia De Jaca Airport","Huesca","Aragón","ES",2241,42.5692,-0.72778,"Europe/Madrid",""
|
|
14995
14995
|
"LECJ","","Castejon de los Monegros Airport","Huesca","Aragón","ES",1424,41.6078,-0.21833,"Europe/Madrid",""
|
|
14996
|
-
"LECN","","
|
|
14996
|
+
"LECN","","Castellón De La Plana Airport","Castellón de La Plana","Comunidad Valenciana","ES",20,39.9992,0.02611,"Europe/Madrid",""
|
|
14997
14997
|
"LECO","LCG","A Coruna Airport","Culleredo","Galicia","ES",326,43.3021,-8.37726,"Europe/Madrid",""
|
|
14998
14998
|
"LECT","","El Castano Airport","Luciana","Castilla-La Mancha","ES",2116,39.0107,-4.38636,"Europe/Madrid",""
|
|
14999
14999
|
"LECU","","Cuatro Vientos Airport","Madrid","Comunidad de Madrid","ES",2269,40.3707,-3.78514,"Europe/Madrid",""
|
|
@@ -24476,7 +24476,7 @@
|
|
|
24476
24476
|
"UBEE","YLV","Yevlakh Airport","Yevlakh","Yevlax-City","AZ",49,40.6319,47.1419,"Asia/Baku",""
|
|
24477
24477
|
"UBTT","ZXT","Zabrat Airport","Baku","Bakı","AZ",92,40.49511,49.97697,"Asia/Baku",""
|
|
24478
24478
|
"UCFL","IKU","Issyk-Kul International Airport","Tamchy","Issyk-Kul","KG",5426,42.5883,76.7133,"Asia/Bishkek",""
|
|
24479
|
-
"UCFM","
|
|
24479
|
+
"UCFM","BSZ","Manas International Airport","Bishkek","Chuey","KG",2090,43.0613,74.4776,"Asia/Bishkek",""
|
|
24480
24480
|
"UCFO","OSS","Osh Airport","Osh","Osh","KG",2938,40.609,72.7933,"Asia/Bishkek",""
|
|
24481
24481
|
"UCFP","","Karakol Airport","Karakol","Issyk-Kul","KG",5590,42.5081,78.4078,"Asia/Bishkek",""
|
|
24482
24482
|
"UD21","","Yerevan Yegvard Airport","Yerevan","Kotayk","AM",4416,40.2941,44.5646,"Asia/Yerevan",""
|
|
@@ -25114,19 +25114,19 @@
|
|
|
25114
25114
|
"VCCV","","Vavuniya Airport","Vavuniya","Northern Province","LK",299,8.74139,80.4974,"Asia/Colombo",""
|
|
25115
25115
|
"VCCW","WRZ","Wirawila Airport","Weerawila","Southern Province","LK",50,6.25449,81.2352,"Asia/Colombo",""
|
|
25116
25116
|
"VCRI","HRI","Mattala Rajapaksa International Airport","Hambantota","Southern Province","LK",157,6.2845,81.12417,"Asia/Colombo",""
|
|
25117
|
-
"VDBG","BBM","Battambang Airport","Battambang","","KH",59,13.0956,103.224,"Asia/Phnom_Penh",""
|
|
25118
|
-
"VDKC","","Kompong Cham Airport","Kompong Cham","Kampong
|
|
25119
|
-
"VDKH","KZC","Kampong Chhnang Airport","","Kampong
|
|
25120
|
-
"VDKK","KKZ","Kaoh Kong Airport","Kaoh Kong","Koh
|
|
25117
|
+
"VDBG","BBM","Battambang Airport","Battambang","Battambang","KH",59,13.0956,103.224,"Asia/Phnom_Penh",""
|
|
25118
|
+
"VDKC","","Kompong Cham Airport","Kompong Cham","Kampong Cham","KH",148,12.033,105.433,"Asia/Phnom_Penh",""
|
|
25119
|
+
"VDKH","KZC","Kampong Chhnang Airport","","Kampong Chhnang","KH",56,12.2552,104.564,"Asia/Phnom_Penh",""
|
|
25120
|
+
"VDKK","KKZ","Kaoh Kong Airport","Kaoh Kong","Koh Kong","KH",0,11.6134,102.99708,"Asia/Phnom_Penh",""
|
|
25121
25121
|
"VDKT","","Kratie Airport","Kratie","Kratie","KH",0,12.488,106.055,"Asia/Phnom_Penh",""
|
|
25122
25122
|
"VDMK","MWV","Mondulkiri Airport","Sen Monorom","Mondolkiri","KH",0,12.46365,107.18725,"Asia/Phnom_Penh",""
|
|
25123
|
-
"VDPP","PNH","Phnom Penh International Airport","Phnom Penh","","KH",40,11.5466,104.844,"Asia/Phnom_Penh",""
|
|
25123
|
+
"VDPP","PNH","Phnom Penh International Airport","Phnom Penh","Phnom Penh","KH",40,11.5466,104.844,"Asia/Phnom_Penh",""
|
|
25124
25124
|
"VDRK","RBE","Ratanakiri Airport","Ratanakiri","Ratanakiri","KH",0,13.73,106.987,"Asia/Phnom_Penh",""
|
|
25125
|
-
"VDSA","SAI","Siem Reap Angkor International Airport","Siem Reap","Siem
|
|
25126
|
-
"VDSR","","Angkor International Airport","Siem Reap","Siem
|
|
25127
|
-
"VDST","TNX","Stung Treng Airport","Stung Treng","Stung
|
|
25125
|
+
"VDSA","SAI","Siem Reap Angkor International Airport","Siem Reap","Siem Reap","KH",191,13.36917,104.22306,"Asia/Phnom_Penh",""
|
|
25126
|
+
"VDSR","","Angkor International Airport","Siem Reap","Siem Reap","KH",60,13.4107,103.813,"Asia/Phnom_Penh",""
|
|
25127
|
+
"VDST","TNX","Stung Treng Airport","Stung Treng","Stung Treng","KH",203,13.5319,106.015,"Asia/Phnom_Penh",""
|
|
25128
25128
|
"VDSV","KOS","Sihanoukville International Airport","Sihanukville","Kampot","KH",33,10.5797,103.637,"Asia/Phnom_Penh",""
|
|
25129
|
-
"VDTI","KTI","Techo International Airport","
|
|
25129
|
+
"VDTI","KTI","Techo International Airport","Krong Ta Khmau","Kandal","KH",20,11.362917,104.916611,"Asia/Phnom_Penh",""
|
|
25130
25130
|
"VE23","","Burnpur Airport","","West Bengal","IN",310,23.6315,86.9755,"Asia/Kolkata",""
|
|
25131
25131
|
"VE24","","Sookerating Airport","","Assam","IN",400,27.5529,95.5706,"Asia/Kolkata",""
|
|
25132
25132
|
"VE36","","Nuagaon Airport","","Odisha","IN",656,20.5117,83.4481,"Asia/Kolkata",""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: airportsdata
|
|
3
|
-
Version:
|
|
3
|
+
Version: 20250811
|
|
4
4
|
Summary: Extensive database of location and timezone data for nearly every airport and landing strip in the world.
|
|
5
5
|
Author-email: Mike Borsetti <mike+airportsdata@borsetti.com>
|
|
6
6
|
Maintainer-email: Mike Borsetti <mike+airportsdata@borsetti.com>
|
|
@@ -37,7 +37,6 @@ Project-URL: Issues, https://github.com/mborsetti/airportsdata/issues
|
|
|
37
37
|
Project-URL: CI, https://github.com/mborsetti/airportsdata/actions
|
|
38
38
|
Keywords: airports,aerodromes,ICAO,IATA
|
|
39
39
|
Classifier: Development Status :: 5 - Production/Stable
|
|
40
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
41
40
|
Classifier: Programming Language :: Python
|
|
42
41
|
Classifier: Programming Language :: Python :: 3
|
|
43
42
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# Project metadata, including build by setuptools
|
|
2
|
+
# See https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
3
|
+
|
|
4
|
+
# TOML syntax at https://toml.io/en/
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
[build-system]
|
|
8
|
+
# Minimum requirements for the build system to execute.
|
|
9
|
+
requires = ['setuptools'] # PEP 508 specifications.
|
|
10
|
+
# Setuptools specification
|
|
11
|
+
build-backend = "setuptools.build_meta"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
[project]
|
|
15
|
+
# See https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
16
|
+
dynamic = ['version', 'dependencies']
|
|
17
|
+
name = 'airportsdata'
|
|
18
|
+
description = """\
|
|
19
|
+
Extensive database of location and timezone data for nearly every airport and landing strip in the world.\
|
|
20
|
+
"""
|
|
21
|
+
readme = { file = 'README.rst', content-type = 'text/x-rst' }
|
|
22
|
+
requires-python = '>=3.9'
|
|
23
|
+
license = {file = 'LICENSE'}
|
|
24
|
+
authors = [
|
|
25
|
+
{name = 'Mike Borsetti', email = 'mike+airportsdata@borsetti.com'},
|
|
26
|
+
]
|
|
27
|
+
maintainers = [
|
|
28
|
+
{name = 'Mike Borsetti', email = 'mike+airportsdata@borsetti.com'},
|
|
29
|
+
]
|
|
30
|
+
keywords = ['airports', 'aerodromes', 'ICAO', 'IATA']
|
|
31
|
+
classifiers = [
|
|
32
|
+
'Development Status :: 5 - Production/Stable',
|
|
33
|
+
'Programming Language :: Python',
|
|
34
|
+
'Programming Language :: Python :: 3',
|
|
35
|
+
'Programming Language :: Python :: 3.10',
|
|
36
|
+
'Programming Language :: Python :: 3.11',
|
|
37
|
+
'Programming Language :: Python :: 3.12',
|
|
38
|
+
'Programming Language :: Python :: 3.13',
|
|
39
|
+
'Operating System :: OS Independent',
|
|
40
|
+
'Topic :: Database',
|
|
41
|
+
'Intended Audience :: Developers',
|
|
42
|
+
'Typing :: Typed',
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
[project.urls]
|
|
46
|
+
Documentation = 'https://github.com/mborsetti/airportsdata/blob/main/README.rst'
|
|
47
|
+
Repository = 'https://github.com/mborsetti/airportsdata/'
|
|
48
|
+
'Database (csv)' = 'https://github.com/mborsetti/airportsdata/blob/main/airportsdata/airports.csv'
|
|
49
|
+
Changelog = 'https://github.com/mborsetti/airportsdata/blob/main/CHANGELOG.rst'
|
|
50
|
+
Issues = 'https://github.com/mborsetti/airportsdata/issues'
|
|
51
|
+
CI = 'https://github.com/mborsetti/airportsdata/actions'
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# -------------------------- setuptools --------------------------
|
|
55
|
+
# Called by build
|
|
56
|
+
# See https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
57
|
+
[tool.setuptools]
|
|
58
|
+
packages = ['airportsdata']
|
|
59
|
+
|
|
60
|
+
[tool.setuptools.dynamic]
|
|
61
|
+
version = {attr = 'airportsdata.__version__'}
|
|
62
|
+
dependencies = {file = 'requirements.txt'}
|
|
63
|
+
|
|
64
|
+
[tool.setuptools.package-data]
|
|
65
|
+
'airportsdata' = ['py.typed']
|
|
66
|
+
|
|
67
|
+
# -------------------------- coverage --------------------------
|
|
68
|
+
# Runs in Github Actions (see .github/workflows/ci-cd.yaml) and in tox (see tox.ini).
|
|
69
|
+
# Config file documentation at https://coverage.readthedocs.io/en/latest/config.html
|
|
70
|
+
[tool.coverage.run]
|
|
71
|
+
branch = true
|
|
72
|
+
source = ['.']
|
|
73
|
+
omit = [
|
|
74
|
+
'.*/*',
|
|
75
|
+
'build/*',
|
|
76
|
+
'dist/*',
|
|
77
|
+
'docs/*',
|
|
78
|
+
'htmlcov/*',
|
|
79
|
+
'pip/*',
|
|
80
|
+
'tests/*',
|
|
81
|
+
'airportsdata.egg-info/*'
|
|
82
|
+
]
|
|
83
|
+
relative_files = true
|
|
84
|
+
command_line = '-m pytest -v'
|
|
85
|
+
parallel = true
|
|
86
|
+
|
|
87
|
+
[tool.coverage.report]
|
|
88
|
+
# Regexes for lines to exclude from consideration
|
|
89
|
+
exclude_lines = [
|
|
90
|
+
# Don't complain about missing debug-only code:
|
|
91
|
+
'def __repr__',
|
|
92
|
+
'if self\.debug:',
|
|
93
|
+
|
|
94
|
+
# Have to re-enable the standard pragma
|
|
95
|
+
'pragma: no cover',
|
|
96
|
+
|
|
97
|
+
# Don't complain if tests don't hit defensive assertion code:
|
|
98
|
+
'raise AssertionError',
|
|
99
|
+
'raise NotImplementedError',
|
|
100
|
+
|
|
101
|
+
# Don't complain if non-runnable code isn't run:
|
|
102
|
+
'if 0:',
|
|
103
|
+
'if __name__ == .__main__.:',
|
|
104
|
+
|
|
105
|
+
# Don't complain if module is not importable (handled by code):
|
|
106
|
+
'except ImportError:',
|
|
107
|
+
|
|
108
|
+
# Don't cover IDE code:
|
|
109
|
+
'if TYPE_CHECKING:'
|
|
110
|
+
]
|
|
111
|
+
# ignore_errors = true
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
# -------------------------- pytest --------------------------
|
|
115
|
+
# Testing framework
|
|
116
|
+
# Config file documentation at https://docs.pytest.org/en/stable/reference/reference.html#ini-options-ref
|
|
117
|
+
[tool.pytest.ini_options]
|
|
118
|
+
log_auto_indent = true
|
|
119
|
+
# Enable log display during test run (aka "live logging" https://docs.pytest.org/en/stable/logging.html#live-logs)
|
|
120
|
+
log_cli = true
|
|
121
|
+
minversion = '8.3.3'
|
|
122
|
+
testpaths = ['tests']
|
|
123
|
+
|
|
124
|
+
# Adds pytest-cov functionality (see https://pytest-cov.readthedocs.io/en/latest/config.html)
|
|
125
|
+
# Note: --cov moved to .github/workflows/ci-cd.yaml and tox.ini due to interference with PyCharm breakpoints (see
|
|
126
|
+
# https://github.com/pytest-dev/pytest-cov/issues/131) and to enable running tox --parallel
|
|
127
|
+
# Instead of below, now runs with $ coverage run --parallel-mode
|
|
128
|
+
# addopts = --cov=./ --cov-report=term --cov-report=html
|
|
129
|
+
|
|
130
|
+
# -------------------------- mypy --------------------------
|
|
131
|
+
[tool.mypy]
|
|
132
|
+
# Static Typing for Python
|
|
133
|
+
# Runs as part of pre-commit
|
|
134
|
+
# Config file documentation at https://mypy.readthedocs.io/en/stable/config_file.html
|
|
135
|
+
|
|
136
|
+
# Disables import discovery of namespace packages (see PEP 420)
|
|
137
|
+
# namespace_packages = false
|
|
138
|
+
|
|
139
|
+
# Top-level packages will be based in either the current directory, or a member of the MYPYPATH environment variable or
|
|
140
|
+
# mypy_path config option. This option is only useful in the absence of __init__.py. See Mapping file paths to modules
|
|
141
|
+
# for details.
|
|
142
|
+
explicit_package_bases = true
|
|
143
|
+
mypy_path = "C:\\users\\mike\\Documents\\python\\git_repos\\webchanges"
|
|
144
|
+
|
|
145
|
+
# Suppresses error messages about imports that cannot be resolved.
|
|
146
|
+
ignore_missing_imports = false
|
|
147
|
+
|
|
148
|
+
# Specifies the Python version used to parse and check the target program.
|
|
149
|
+
# python_version = 3.12
|
|
150
|
+
|
|
151
|
+
# Disallows calling functions without type annotations from functions with type annotations.
|
|
152
|
+
disallow_untyped_calls = true
|
|
153
|
+
|
|
154
|
+
# Disallows defining functions without type annotations or with incomplete type annotations.
|
|
155
|
+
disallow_untyped_defs = true
|
|
156
|
+
|
|
157
|
+
# Reports an error whenever a function with type annotations is decorated with a decorator without annotations.
|
|
158
|
+
# disallow_untyped_decorators = true
|
|
159
|
+
|
|
160
|
+
# Warns about casting an expression to its inferred type.
|
|
161
|
+
warn_redundant_casts = true
|
|
162
|
+
|
|
163
|
+
# Warns about unneeded # type: ignore comments.
|
|
164
|
+
# May behave differently in GitHub Actions than it does on Windows.
|
|
165
|
+
warn_unused_ignores = true
|
|
166
|
+
|
|
167
|
+
# Allows disabling one or multiple error codes globally.
|
|
168
|
+
disable_error_code = ["import-not-found", "import-untyped"]
|
|
169
|
+
|
|
170
|
+
# Shows a warning when returning a value with type Any from a function declared with a non-Any return type.
|
|
171
|
+
warn_return_any = true
|
|
172
|
+
|
|
173
|
+
# Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis.
|
|
174
|
+
warn_unreachable = false
|
|
175
|
+
|
|
176
|
+
# Enables additional checks that are technically correct but may be impractical in real code.
|
|
177
|
+
extra_checks = true
|
|
178
|
+
|
|
179
|
+
# Shows documentation link to corresponding error code.
|
|
180
|
+
show_error_code_links = true
|
|
181
|
+
|
|
182
|
+
# Use visually nicer output in error messages: use soft word wrap, show source code snippets, and show error location
|
|
183
|
+
# markers.
|
|
184
|
+
pretty = true
|
|
185
|
+
|
|
186
|
+
# Use an SQLite database to store the cache.
|
|
187
|
+
sqlite_cache = true
|
|
188
|
+
|
|
189
|
+
# Warns about per-module sections in the config file that do not match any files processed when invoking mypy.
|
|
190
|
+
warn_unused_configs = true
|
|
191
|
+
|
|
192
|
+
# -------------------------- ruff --------------------------
|
|
193
|
+
[tool.ruff]
|
|
194
|
+
# Config file documentation at https://docs.astral.sh/ruff/configuration/
|
|
195
|
+
|
|
196
|
+
# Exclude a variety of commonly ignored directories.
|
|
197
|
+
exclude = [
|
|
198
|
+
".bzr",
|
|
199
|
+
".direnv",
|
|
200
|
+
".eggs",
|
|
201
|
+
".git",
|
|
202
|
+
".git-rewrite",
|
|
203
|
+
".hg",
|
|
204
|
+
".ipynb_checkpoints",
|
|
205
|
+
".mypy_cache",
|
|
206
|
+
".nox",
|
|
207
|
+
".pants.d",
|
|
208
|
+
".pyenv",
|
|
209
|
+
".pytest_cache",
|
|
210
|
+
".pytype",
|
|
211
|
+
".ruff_cache",
|
|
212
|
+
".svn",
|
|
213
|
+
".tox",
|
|
214
|
+
".venv",
|
|
215
|
+
".vscode",
|
|
216
|
+
"__pypackages__",
|
|
217
|
+
"_build",
|
|
218
|
+
"buck-out",
|
|
219
|
+
"build",
|
|
220
|
+
"dist",
|
|
221
|
+
"node_modules",
|
|
222
|
+
"site-packages",
|
|
223
|
+
"venv",
|
|
224
|
+
]
|
|
225
|
+
|
|
226
|
+
# By default, Ruff will discover files matching *.py, *.pyi, *.ipynb, or pyproject.toml.
|
|
227
|
+
# Include additional files
|
|
228
|
+
# include = []
|
|
229
|
+
|
|
230
|
+
# Set the maximum line length.
|
|
231
|
+
line-length = 120
|
|
232
|
+
indent-width = 4
|
|
233
|
+
|
|
234
|
+
# Target Python version
|
|
235
|
+
# target-version = "py311" # Commented out to infer from [project] requires-python
|
|
236
|
+
|
|
237
|
+
[tool.ruff.lint]
|
|
238
|
+
# By default, Ruff enables Flake8's F rules, along with a subset of the E rules
|
|
239
|
+
# Enable rules not enabled by default, and ignore specific rules.
|
|
240
|
+
select = [
|
|
241
|
+
# flake8-builtins
|
|
242
|
+
"B",
|
|
243
|
+
# flake8-bandit
|
|
244
|
+
"S",
|
|
245
|
+
# flake8-datetimez
|
|
246
|
+
"DTZ",
|
|
247
|
+
# isort
|
|
248
|
+
"I",
|
|
249
|
+
# McCabe complexity
|
|
250
|
+
# "C901",
|
|
251
|
+
# pepe8-naming
|
|
252
|
+
"N",
|
|
253
|
+
# Pyflakes
|
|
254
|
+
"F",
|
|
255
|
+
# pycodestyle errors and warnings
|
|
256
|
+
"E",
|
|
257
|
+
"W",
|
|
258
|
+
# Ruff-specific rules
|
|
259
|
+
"RUF",
|
|
260
|
+
]
|
|
261
|
+
ignore = [
|
|
262
|
+
"B904", # Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None`
|
|
263
|
+
"S101", # Use of `assert` detected
|
|
264
|
+
"DTZ001", # `datetime.datetime()` called without a `tzinfo` argument
|
|
265
|
+
"DTZ005", # `datetime.datetime.now()` called without a `tz` argument
|
|
266
|
+
"DTZ006", # `datetime.datetime.fromtimestamp()` called without a `tz` argument
|
|
267
|
+
"DTZ007", # Naive datetime constructed using `datetime.datetime.strptime()` without %z
|
|
268
|
+
"DTZ011", # `datetime.date.today()` used,
|
|
269
|
+
"RUF001", # String contains ambiguous `–` (EN DASH). Did you mean `-` (HYPHEN-MINUS)?
|
|
270
|
+
"RUF002", # Docstring contains ambiguous `’` (RIGHT SINGLE QUOTATION MARK). Did you mean ``` (GRAVE ACCENT)?
|
|
271
|
+
"RUF003", # Comment contains ambiguous `–` (EN DASH). Did you mean `-` (HYPHEN-MINUS)?
|
|
272
|
+
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
|
|
273
|
+
]
|
|
274
|
+
|
|
275
|
+
# Allow fix for all enabled rules (when `--fix`) is provided.
|
|
276
|
+
fixable = ["ALL"]
|
|
277
|
+
unfixable = []
|
|
278
|
+
|
|
279
|
+
# Allow unused variables when underscore-prefixed.
|
|
280
|
+
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
281
|
+
|
|
282
|
+
[tool.ruff.format]
|
|
283
|
+
# Enable the formatter, which is a drop-in replacement for Black.
|
|
284
|
+
# No extra configuration is needed for basic formatting.
|
|
285
|
+
|
|
286
|
+
# Exclude files for formatting only
|
|
287
|
+
exclude = []
|
|
288
|
+
|
|
289
|
+
# Use single quotes for strings.
|
|
290
|
+
quote-style = "single"
|
|
291
|
+
|
|
292
|
+
# Like Black, indent with spaces, rather than tabs.
|
|
293
|
+
indent-style = "space"
|
|
294
|
+
|
|
295
|
+
# Like Black, respect magic trailing commas.
|
|
296
|
+
skip-magic-trailing-comma = false
|
|
297
|
+
|
|
298
|
+
# Like Black, automatically detect the appropriate line ending.
|
|
299
|
+
line-ending = "auto"
|
|
300
|
+
|
|
301
|
+
# Enable auto-formatting of code examples in docstrings. Markdown,
|
|
302
|
+
# reStructuredText code/literal blocks and doctests are all supported.
|
|
303
|
+
#
|
|
304
|
+
# This is currently disabled by default, but it is planned for this
|
|
305
|
+
# to be opt-out in the future.
|
|
306
|
+
docstring-code-format = true
|
|
307
|
+
|
|
308
|
+
# Set the line length limit used when formatting code snippets in
|
|
309
|
+
# docstrings.
|
|
310
|
+
#
|
|
311
|
+
# This only has an effect when the `docstring-code-format` setting is
|
|
312
|
+
# enabled.
|
|
313
|
+
docstring-code-line-length = "dynamic"
|
|
314
|
+
|
|
315
|
+
[tool.ruff.lint.per-file-ignores]
|
|
316
|
+
"test_*" = [
|
|
317
|
+
# Use of `assert` detected
|
|
318
|
+
"S101",
|
|
319
|
+
]
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
# Project metadata, including build by setuptools
|
|
2
|
-
# See https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
3
|
-
|
|
4
|
-
# TOML syntax at https://toml.io/en/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
[build-system]
|
|
8
|
-
# Minimum requirements for the build system to execute.
|
|
9
|
-
requires = ['setuptools'] # PEP 508 specifications.
|
|
10
|
-
# Setuptools specification
|
|
11
|
-
build-backend = "setuptools.build_meta"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
[project]
|
|
15
|
-
# See https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
16
|
-
dynamic = ['version', 'dependencies']
|
|
17
|
-
name = 'airportsdata'
|
|
18
|
-
description = """\
|
|
19
|
-
Extensive database of location and timezone data for nearly every airport and landing strip in the world.\
|
|
20
|
-
"""
|
|
21
|
-
readme = { file = 'README.rst', content-type = 'text/x-rst' }
|
|
22
|
-
requires-python = '>=3.9'
|
|
23
|
-
license = {file = 'LICENSE'}
|
|
24
|
-
authors = [
|
|
25
|
-
{name = 'Mike Borsetti', email = 'mike+airportsdata@borsetti.com'},
|
|
26
|
-
]
|
|
27
|
-
maintainers = [
|
|
28
|
-
{name = 'Mike Borsetti', email = 'mike+airportsdata@borsetti.com'},
|
|
29
|
-
]
|
|
30
|
-
keywords = ['airports', 'aerodromes', 'ICAO', 'IATA']
|
|
31
|
-
classifiers = [
|
|
32
|
-
'Development Status :: 5 - Production/Stable',
|
|
33
|
-
'License :: OSI Approved :: MIT License',
|
|
34
|
-
'Programming Language :: Python',
|
|
35
|
-
'Programming Language :: Python :: 3',
|
|
36
|
-
'Programming Language :: Python :: 3.10',
|
|
37
|
-
'Programming Language :: Python :: 3.11',
|
|
38
|
-
'Programming Language :: Python :: 3.12',
|
|
39
|
-
'Programming Language :: Python :: 3.13',
|
|
40
|
-
'Operating System :: OS Independent',
|
|
41
|
-
'Topic :: Database',
|
|
42
|
-
'Intended Audience :: Developers',
|
|
43
|
-
'Typing :: Typed',
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
[project.urls]
|
|
47
|
-
Documentation = 'https://github.com/mborsetti/airportsdata/blob/main/README.rst'
|
|
48
|
-
Repository = 'https://github.com/mborsetti/airportsdata/'
|
|
49
|
-
'Database (csv)' = 'https://github.com/mborsetti/airportsdata/blob/main/airportsdata/airports.csv'
|
|
50
|
-
Changelog = 'https://github.com/mborsetti/airportsdata/blob/main/CHANGELOG.rst'
|
|
51
|
-
Issues = 'https://github.com/mborsetti/airportsdata/issues'
|
|
52
|
-
CI = 'https://github.com/mborsetti/airportsdata/actions'
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
# -------------------------- setuptools --------------------------
|
|
56
|
-
# Called by build
|
|
57
|
-
# See https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
58
|
-
[tool.setuptools]
|
|
59
|
-
packages = ['airportsdata']
|
|
60
|
-
|
|
61
|
-
[tool.setuptools.dynamic]
|
|
62
|
-
version = {attr = 'airportsdata.__version__'}
|
|
63
|
-
dependencies = {file = 'requirements.txt'}
|
|
64
|
-
|
|
65
|
-
[tool.setuptools.package-data]
|
|
66
|
-
'airportsdata' = ['py.typed']
|
|
67
|
-
|
|
68
|
-
# -------------------------- black --------------------------
|
|
69
|
-
# Uncompromising code formatting
|
|
70
|
-
# Runs as part of pre-commit
|
|
71
|
-
# Config file documentation
|
|
72
|
-
# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file
|
|
73
|
-
[tool.black]
|
|
74
|
-
# What's in here overrides the command-line options shown by running $ black --help.
|
|
75
|
-
line_length = 120
|
|
76
|
-
target_version = ['py39']
|
|
77
|
-
skip_string_normalization = true
|
|
78
|
-
extend_exclude = '/(\.idea|\.pytest_cache|\__pycache__|\venv.*|\webchanges.egg-info)/'
|
|
79
|
-
color = true
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
# -------------------------- coverage --------------------------
|
|
83
|
-
# Runs in Github Actions (see .github/workflows/ci-cd.yaml) and in tox (see tox.ini).
|
|
84
|
-
# Config file documentation at https://coverage.readthedocs.io/en/latest/config.html
|
|
85
|
-
[tool.coverage.run]
|
|
86
|
-
branch = true
|
|
87
|
-
source = ['.']
|
|
88
|
-
omit = [
|
|
89
|
-
'.*/*',
|
|
90
|
-
'build/*',
|
|
91
|
-
'dist/*',
|
|
92
|
-
'docs/*',
|
|
93
|
-
'htmlcov/*',
|
|
94
|
-
'pip/*',
|
|
95
|
-
'tests/*',
|
|
96
|
-
'airportsdata.egg-info/*'
|
|
97
|
-
]
|
|
98
|
-
relative_files = true
|
|
99
|
-
command_line = '-m pytest -v'
|
|
100
|
-
parallel = true
|
|
101
|
-
|
|
102
|
-
[tool.coverage.report]
|
|
103
|
-
# Regexes for lines to exclude from consideration
|
|
104
|
-
exclude_lines = [
|
|
105
|
-
# Don't complain about missing debug-only code:
|
|
106
|
-
'def __repr__',
|
|
107
|
-
'if self\.debug:',
|
|
108
|
-
|
|
109
|
-
# Have to re-enable the standard pragma
|
|
110
|
-
'pragma: no cover',
|
|
111
|
-
|
|
112
|
-
# Don't complain if tests don't hit defensive assertion code:
|
|
113
|
-
'raise AssertionError',
|
|
114
|
-
'raise NotImplementedError',
|
|
115
|
-
|
|
116
|
-
# Don't complain if non-runnable code isn't run:
|
|
117
|
-
'if 0:',
|
|
118
|
-
'if __name__ == .__main__.:',
|
|
119
|
-
|
|
120
|
-
# Don't complain if module is not importable (handled by code):
|
|
121
|
-
'except ImportError:',
|
|
122
|
-
|
|
123
|
-
# Don't cover IDE code:
|
|
124
|
-
'if TYPE_CHECKING:'
|
|
125
|
-
]
|
|
126
|
-
# ignore_errors = true
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
# -------------------------- pytest --------------------------
|
|
130
|
-
# Testing framework
|
|
131
|
-
# Config file documentation at https://docs.pytest.org/en/stable/reference/reference.html#ini-options-ref
|
|
132
|
-
[tool.pytest.ini_options]
|
|
133
|
-
log_auto_indent = true
|
|
134
|
-
# Enable log display during test run (aka "live logging" https://docs.pytest.org/en/stable/logging.html#live-logs)
|
|
135
|
-
log_cli = true
|
|
136
|
-
minversion = '8.3.3'
|
|
137
|
-
testpaths = ['tests']
|
|
138
|
-
|
|
139
|
-
# Adds pytest-cov functionality (see https://pytest-cov.readthedocs.io/en/latest/config.html)
|
|
140
|
-
# Note: --cov moved to .github/workflows/ci-cd.yaml and tox.ini due to interference with PyCharm breakpoints (see
|
|
141
|
-
# https://github.com/pytest-dev/pytest-cov/issues/131) and to enable running tox --parallel
|
|
142
|
-
# Instead of below, now runs with $ coverage run --parallel-mode
|
|
143
|
-
# addopts = --cov=./ --cov-report=term --cov-report=html
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|