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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airportsdata
3
- Version: 20250706
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__ = '20250706' # numbering follows the release date
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","Castellon de la Plana Airport","Castellón de la Plana","Castellón","ES",1182,40.21417,0.07333,"Europe/Madrid",""
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","","Castellon De La Plana Airport","Castellon de La Plana","Comunidad Valenciana","ES",20,39.9992,0.02611,"Europe/Madrid",""
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","FRU","Manas International Airport","Bishkek","Chuey","KG",2090,43.0613,74.4776,"Asia/Bishkek",""
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-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",""
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-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",""
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","Phnom Penh","Kandal","KH",20,11.362917,104.916611,"Asia/Phnom_Penh",""
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: 20250706
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