pydeflate 2.1.3__py3-none-any.whl → 2.3.0__py3-none-any.whl

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,24 +1,26 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: pydeflate
3
- Version: 2.1.3
3
+ Version: 2.3.0
4
4
  Summary: Package to convert current prices figures to constant prices and vice versa
5
- License: MIT
6
5
  Author: Jorge Rivera
7
- Author-email: jorge.rivera@one.org
8
- Requires-Python: >=3.10, <4.0
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Programming Language :: Python :: 3.13
15
- Requires-Dist: hdx-python-country (>=3.8,<4.0.0)
16
- Requires-Dist: imf-reader (>=1.2.0,<2.0.0)
17
- Requires-Dist: oda-reader (>=1.0.5,<2.0.0)
18
- Requires-Dist: pandas (>=2.2.3,<3.0.0)
19
- Requires-Dist: pyarrow (>=14.0)
20
- Requires-Dist: requests (>=2.32.3,<3.0.0)
21
- Requires-Dist: wbgapi (>=1.0.12,<2.0.0)
6
+ Author-email: Jorge Rivera <Jorge.Rivera@one.org>
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Requires-Dist: hdx-python-country>=3.9.8
10
+ Requires-Dist: imf-reader>=1.3.0
11
+ Requires-Dist: oda-reader>=1.2.2
12
+ Requires-Dist: pandas>=2.0
13
+ Requires-Dist: pandera>=0.20.0
14
+ Requires-Dist: pyarrow>=17.0
15
+ Requires-Dist: requests>=2.32.5
16
+ Requires-Dist: wbgapi>=1.0.12
17
+ Requires-Dist: platformdirs>=3.0.0
18
+ Requires-Dist: filelock>=3.15.0
19
+ Maintainer: Jorge Rivera
20
+ Requires-Python: >=3.11
21
+ Project-URL: Homepage, https://github.com/jm-rivera/pydeflate
22
+ Project-URL: Issues, https://github.com/jm-rivera/pydeflate/issues
23
+ Project-URL: Repository, https://github.com/jm-rivera/pydeflate
22
24
  Description-Content-Type: text/markdown
23
25
 
24
26
  # pydeflate
@@ -26,6 +28,7 @@ Description-Content-Type: text/markdown
26
28
  [![pypi](https://img.shields.io/pypi/v/pydeflate.svg)](https://pypi.python.org/pypi/pydeflate)
27
29
  [![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
28
30
  [![Downloads](https://pepy.tech/badge/pydeflate/month)](https://pepy.tech/project/pydeflate)
31
+ [![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](https://jm-rivera.github.io/pydeflate/)
29
32
 
30
33
  **pydeflate** is a Python package to:
31
34
  - Convert current price data to constant prices.
@@ -34,6 +37,8 @@ Description-Content-Type: text/markdown
34
37
 
35
38
  When converting to or from constant prices, it takes into account changes in prices and exchange rates over time. This allows for accurate comparisons across years, countries, and currencies.
36
39
 
40
+ 📚 **[Read the full documentation →](https://jm-rivera.github.io/pydeflate/)**
41
+
37
42
  ## Important Note
38
43
 
39
44
  **pydeflate v2 has recently been released. It includes api changes which break backwards-compatibility**. While a version of the `deflate` function is still available, it is now deprecated and will be removed in future versions. Please use the new deflator functions for improved simplicity, clarity and performance.
@@ -56,6 +61,11 @@ When converting to or from constant prices, it takes into account changes in pri
56
61
  - [Currency Conversion](#currency-conversion)
57
62
  - [Example](#example-currency-conversion)
58
63
 
64
+ - [Getting Deflators and Exchange Rates Directly](#getting-deflators-and-exchange-rates-directly)
65
+ - [Getting Deflators](#getting-deflators)
66
+ - [Getting Exchange Rates](#getting-exchange-rates)
67
+ - [Common Use Cases](#common-use-cases)
68
+
59
69
  - [Example: Using Source-Specific Codes](#example-using-source-specific-codes)
60
70
 
61
71
  - [Data Sources and Method Options](#data-sources-and-method-options)
@@ -180,6 +190,111 @@ df_can = oecd_dac_exchange(
180
190
  )
181
191
  ```
182
192
 
193
+ ## Getting Deflators and Exchange Rates Directly
194
+
195
+ **New in v2.3.0**: You can now retrieve deflator and exchange rate data directly as DataFrames, without needing to provide your own data. This is useful for inspecting deflators, analyzing trends, or pre-computing values for later use.
196
+
197
+ ### Getting Deflators
198
+
199
+ ```python
200
+ from pydeflate import get_imf_gdp_deflators, set_pydeflate_path
201
+
202
+ # Specify the path where deflator data will be saved
203
+ set_pydeflate_path("path/to/data/folder")
204
+
205
+ # Get deflators for specific countries and years
206
+ deflators = get_imf_gdp_deflators(
207
+ base_year=2015,
208
+ source_currency="USA",
209
+ target_currency="EUR",
210
+ countries=["USA", "FRA", "GBR"], # Optional: filter specific countries
211
+ years=range(2010, 2024), # Optional: filter specific years
212
+ )
213
+
214
+ # Returns a DataFrame with columns: iso_code, year, deflator
215
+ print(deflators.head())
216
+ ```
217
+
218
+ You can also get the individual components that make up the deflator:
219
+
220
+ ```python
221
+ # Include price deflator, exchange deflator, and exchange rate components
222
+ deflators_detailed = get_imf_gdp_deflators(
223
+ base_year=2015,
224
+ source_currency="USA",
225
+ target_currency="EUR",
226
+ include_components=True, # Adds price_deflator, exchange_deflator, exchange_rate columns
227
+ )
228
+ ```
229
+
230
+ ### Available Get Deflator Functions
231
+
232
+ - `get_imf_gdp_deflators`: Get IMF GDP deflators
233
+ - `get_imf_cpi_deflators`: Get IMF CPI deflators
234
+ - `get_imf_cpi_e_deflators`: Get IMF end-of-period CPI deflators
235
+ - `get_wb_gdp_deflators`: Get World Bank GDP deflators
236
+ - `get_wb_gdp_linked_deflators`: Get World Bank linked GDP deflators
237
+ - `get_wb_cpi_deflators`: Get World Bank CPI deflators
238
+ - `get_oecd_dac_deflators`: Get OECD DAC deflators
239
+
240
+ ### Getting Exchange Rates
241
+
242
+ ```python
243
+ from pydeflate import get_imf_exchange_rates
244
+
245
+ # Get exchange rates for specific currency pairs
246
+ rates = get_imf_exchange_rates(
247
+ source_currency="USD",
248
+ target_currency="EUR",
249
+ countries=["USA", "FRA", "GBR"], # Optional: filter specific countries
250
+ years=range(2010, 2024), # Optional: filter specific years
251
+ )
252
+
253
+ # Returns a DataFrame with columns: iso_code, year, exchange_rate
254
+ print(rates.head())
255
+ ```
256
+
257
+ ### Available Get Exchange Rate Functions
258
+
259
+ - `get_imf_exchange_rates`: Get IMF exchange rates
260
+ - `get_wb_exchange_rates`: Get World Bank exchange rates
261
+ - `get_wb_ppp_rates`: Get World Bank PPP conversion rates
262
+ - `get_oecd_dac_exchange_rates`: Get OECD DAC exchange rates
263
+
264
+ ### Common Use Cases
265
+
266
+ **Analyzing deflator trends:**
267
+ ```python
268
+ import matplotlib.pyplot as plt
269
+
270
+ # Get US GDP deflators over time
271
+ deflators = get_imf_gdp_deflators(
272
+ base_year=2015,
273
+ countries=["USA"],
274
+ years=range(2000, 2024)
275
+ )
276
+
277
+ plt.plot(deflators["year"], deflators["deflator"])
278
+ plt.title("US GDP Deflator (Base Year 2015)")
279
+ plt.show()
280
+ ```
281
+
282
+ **Pre-computing deflators for manual calculations:**
283
+ ```python
284
+ # Get deflators
285
+ deflators = get_imf_gdp_deflators(
286
+ base_year=2020,
287
+ source_currency="USA",
288
+ target_currency="EUR"
289
+ )
290
+
291
+ # Use in your own calculations
292
+ my_value_2021 = 100 # USD in 2021
293
+ deflator_2021 = deflators[(deflators["iso_code"] == "USA") &
294
+ (deflators["year"] == 2021)]["deflator"].iloc[0]
295
+ constant_value = my_value_2021 / deflator_2021
296
+ ```
297
+
183
298
  ## Example: Using Source-Specific Codes
184
299
 
185
300
  If your data uses source-specific country codes (e.g., DAC codes), set use_source_codes=True and specify the appropriate id_column.
@@ -280,5 +395,123 @@ Pydeflate relies on data from external sources. If there are missing values in t
280
395
 
281
396
  Pydeflate periodically updates its underlying data from the World Bank, IMF, and OECD. If the data on your system is older than 50 days, pydeflate will display a warning upon import.
282
397
 
398
+ ## Advanced Features
399
+
400
+ ### Error Handling
401
+
402
+ Pydeflate v2.1.3+ provides specific exception types for better error handling:
403
+
404
+ ```python
405
+ from pydeflate import imf_gdp_deflate
406
+ from pydeflate.exceptions import NetworkError, ConfigurationError, MissingDataError
407
+
408
+ try:
409
+ result = imf_gdp_deflate(df, base_year=2015, source_currency="USA", target_currency="EUR")
410
+ except NetworkError as e:
411
+ # Handle network failures (retry, fallback to cached data, etc.)
412
+ print(f"Network error: {e}")
413
+ # Implement retry logic
414
+ except ConfigurationError as e:
415
+ # Handle invalid parameters (wrong currency codes, missing columns, etc.)
416
+ print(f"Configuration error: {e}")
417
+ raise
418
+ except MissingDataError as e:
419
+ # Handle missing deflator/exchange data for specific country-year combinations
420
+ print(f"Missing data: {e}")
421
+ # Use alternative source or fill gaps
422
+ ```
423
+
424
+ Available exception types:
425
+ - `PydeflateError`: Base exception for all pydeflate errors
426
+ - `NetworkError`: Network-related failures
427
+ - `ConfigurationError`: Invalid parameters or configuration
428
+ - `DataSourceError`: Issues loading or parsing data from sources
429
+ - `CacheError`: Cache operation failures
430
+ - `MissingDataError`: Required deflator/exchange data unavailable
431
+ - `SchemaValidationError`: Data validation failures
432
+
433
+ ### Custom Data Sources (Plugin System)
434
+
435
+ You can register custom data sources without modifying pydeflate's code:
436
+
437
+ ```python
438
+ from pydeflate.plugins import register_source, list_sources
439
+
440
+ # Define your custom source
441
+ @register_source("my_central_bank")
442
+ class MyCentralBankSource:
443
+ def __init__(self, update: bool = False):
444
+ self.name = "my_central_bank"
445
+ self.data = self.load_my_data(update) # Your data loading logic
446
+ self._idx = ["pydeflate_year", "pydeflate_entity_code", "pydeflate_iso3"]
447
+
448
+ def lcu_usd_exchange(self):
449
+ # Return exchange rate data
450
+ return self.data.filter(self._idx + ["pydeflate_EXCHANGE"])
451
+
452
+ def price_deflator(self, kind="NGDP_D"):
453
+ # Return deflator data
454
+ return self.data.filter(self._idx + [f"pydeflate_{kind}"])
455
+
456
+ def validate(self):
457
+ # Validate data format
458
+ if self.data.empty:
459
+ raise ValueError("No data loaded")
460
+
461
+ # List all available sources
462
+ print(list_sources()) # ['DAC', 'IMF', 'World Bank', 'my_central_bank', ...]
463
+
464
+ # Your custom source is now available for use with pydeflate
465
+ ```
466
+
467
+ ### Advanced Configuration
468
+
469
+ For advanced use cases, you can use context managers to customize pydeflate's behavior:
470
+
471
+ ```python
472
+ from pydeflate.context import pydeflate_session
473
+ import logging
474
+
475
+ # Use a custom cache directory and logging level
476
+ with pydeflate_session(data_dir="/tmp/my_cache", log_level=logging.DEBUG) as ctx:
477
+ result = imf_gdp_deflate(df, base_year=2015, ...)
478
+ # Data is cached in /tmp/my_cache
479
+ # Debug logging is enabled
480
+
481
+ # Or set a default context for your entire application
482
+ from pydeflate.context import PydeflateContext, set_default_context
483
+
484
+ ctx = PydeflateContext.create(
485
+ data_dir="/app/data/pydeflate_cache",
486
+ log_level=logging.INFO
487
+ )
488
+ set_default_context(ctx)
489
+
490
+ # All subsequent pydeflate operations use this configuration
491
+ ```
492
+
493
+ This is useful for:
494
+ - Using different cache directories for different projects
495
+ - Running multiple pydeflate operations in parallel without cache conflicts
496
+ - Customizing logging verbosity
497
+ - Testing with temporary cache directories
498
+
499
+ ## Documentation
500
+
501
+ For comprehensive documentation including detailed examples, advanced features, and troubleshooting:
502
+
503
+ **[📚 Full Documentation](https://jm-rivera.github.io/pydeflate/)**
504
+
505
+ The documentation includes:
506
+ - [Getting Started Guide](https://jm-rivera.github.io/pydeflate/getting-started/) - Setup and DataFrame requirements
507
+ - [Deflation Guide](https://jm-rivera.github.io/pydeflate/deflation/) - All deflation methods with examples
508
+ - [Currency Exchange](https://jm-rivera.github.io/pydeflate/exchange/) - Currency conversion examples
509
+ - [Data Sources](https://jm-rivera.github.io/pydeflate/data-sources/) - IMF, World Bank, and OECD DAC comparison
510
+ - [Advanced Topics](https://jm-rivera.github.io/pydeflate/advanced/exceptions/) - Error handling, contexts, plugins, validation
511
+ - [Migration Guide](https://jm-rivera.github.io/pydeflate/migration/) - v1 to v2 migration
512
+ - [FAQ](https://jm-rivera.github.io/pydeflate/faq/) - Common questions and troubleshooting
513
+
514
+ ## Contributing
283
515
 
516
+ Contributions are welcome! Please feel free to submit a Pull Request or open an issue on [GitHub](https://github.com/jm-rivera/pydeflate).
284
517
 
@@ -0,0 +1,34 @@
1
+ pydeflate/.pydeflate_data/README.md,sha256=atNtUL9dD8G184YSd6juFib8TgEQBcSLogiz99APPVs,25
2
+ pydeflate/__init__.py,sha256=Bp8xuw0h7-bOrtKXMRqxE_PjdZsPGKCP1zthphGSu3U,2747
3
+ pydeflate/cache.py,sha256=jfNilTrzGucdFpaTn6AwQWCFMT5123ZgcYwhDgtsCK8,4755
4
+ pydeflate/constants.py,sha256=-xxH2skAWHHMQxIJSFWOayU-GmRlqowjkIhIzvyUuac,2972
5
+ pydeflate/context.py,sha256=0HBHnaHcpESDbyfZLo-5W_Kg03WI5Itf0LCABa2w08E,6565
6
+ pydeflate/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ pydeflate/core/api.py,sha256=W-MFdxsbO1dNG0pX1e2xxtjQL3qmYxTqiLLISVkizQA,15941
8
+ pydeflate/core/deflator.py,sha256=Ax3dmOF3tYRZnkIfFvMMo3SOLgAJHkXSmA-OtIUZkp0,5932
9
+ pydeflate/core/exchange.py,sha256=br6RVgTGa7LW09XemUJZ4Koazf65zuXPQKYKGhS6ROM,8535
10
+ pydeflate/core/source.py,sha256=dZiMqVdUXD6KQ0RuzR4clb7sCPYcCMZOkg9GhhjqppI,4908
11
+ pydeflate/deflate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ pydeflate/deflate/deflators.py,sha256=qd6afJfVNHpNb12xDfS0TGHg5p4ngH5Tb_CWk6555Us,7768
13
+ pydeflate/deflate/get_deflators.py,sha256=rR5lTU_rv2tEPlNEMwGXuUC3vY2fQ5k9MZMvw4T8J5I,8308
14
+ pydeflate/deflate/legacy_deflate.py,sha256=N9tIuKzVOQtSw5QBeJG6Um86nheLG0yXgdvPVZCmrIA,3900
15
+ pydeflate/exceptions.py,sha256=31LzEG0aOT41e6S21NvsR2Lt_pozQmVgonqLwvOcn7I,4711
16
+ pydeflate/exchange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ pydeflate/exchange/exchangers.py,sha256=HxKM2cqDEArQplww2d-lm-EAbccSMxEovErpkgTunkk,6721
18
+ pydeflate/exchange/get_rates.py,sha256=-v9QbKWNKGTtsWqSUXD0j0S2qtan6wtXhu3DQN6akSk,7775
19
+ pydeflate/plugins.py,sha256=fZxO79v4cbbHvsYAvstIC7kk2uSPVCiurXqrS2mukqI,8872
20
+ pydeflate/protocols.py,sha256=0jVSynQItjt-yv8HSU19RPQrfo1Vgo7Ws1CQfX5ZIaI,4694
21
+ pydeflate/pydeflate_config.py,sha256=9r8tu-k-XhFMM2x3dQwEjk2dHj-pwdUf6pdvEowbE2I,2725
22
+ pydeflate/schemas.py,sha256=XBfBVIQjie6IK5rsEn6MSBqv5IxRkKxa7xnc7UaH9kU,7779
23
+ pydeflate/settings/emu.json,sha256=BIvbiMUeHUtCESR3sMcBNrS028yp2YraCJdhDJGvAAo,133
24
+ pydeflate/settings/oecd_codes.json,sha256=jAKI1EgQP4rttjoG3Z-44r1tUJrIEzPCZF5V2aboQhE,911
25
+ pydeflate/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ pydeflate/sources/common.py,sha256=37HuExGr86RtCD-ZkF0NiIIfRbGgPbImZCQeZjYSzhk,8509
27
+ pydeflate/sources/dac.py,sha256=RkO_nFZcp8AeSJNFzdBrGqaL2kLVUeXBHTPO6PkUFy0,3824
28
+ pydeflate/sources/imf.py,sha256=Nu8Gm4wT-FdBpTuaYUrzOC2V3BNP9srNOIuQJ9E16_0,6712
29
+ pydeflate/sources/world_bank.py,sha256=1DzDlr0Xe0DA0OUsycjwiq-4yMasnP0TneXEK0VmcRw,7281
30
+ pydeflate/utils.py,sha256=HRVMUuWKS1IpU8lmkvQN1jIMA5-LEFzyEd0ReZSx65k,4252
31
+ pydeflate-2.3.0.dist-info/licenses/LICENSE,sha256=8ymAThz7Z4JhjqL6vDwTaoq29tFytQRDkoW3rnTGstI,1075
32
+ pydeflate-2.3.0.dist-info/WHEEL,sha256=n2u5OFBbdZvCiUKAmfnY1Po2j3FB_NWfuUlt5WiAjrk,79
33
+ pydeflate-2.3.0.dist-info/METADATA,sha256=dMxbCpdH_ya7gJ4WNrqAfxwVseSd30-Ln1nLtn3jwsI,20555
34
+ pydeflate-2.3.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.8.23
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021-2024, Jorge Rivera
3
+ Copyright (c) 2021-2025, Jorge Rivera
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,25 +0,0 @@
1
- pydeflate/.pydeflate_data/README.md,sha256=atNtUL9dD8G184YSd6juFib8TgEQBcSLogiz99APPVs,25
2
- pydeflate/__init__.py,sha256=_E54U6FY77A_i2PSCt-oUF0E4EN2GiEpBotw1IQ6fXk,1013
3
- pydeflate/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- pydeflate/core/api.py,sha256=iB4fLdfnqN_nLLcnMzWtoGksQ6y4sfL0CZsVpiiPGQY,14687
5
- pydeflate/core/deflator.py,sha256=Ax3dmOF3tYRZnkIfFvMMo3SOLgAJHkXSmA-OtIUZkp0,5932
6
- pydeflate/core/exchange.py,sha256=br6RVgTGa7LW09XemUJZ4Koazf65zuXPQKYKGhS6ROM,8535
7
- pydeflate/core/source.py,sha256=n603ocgGjthXNcBWwgADkefxWmSFuN77Km9Z0T2zpIg,2027
8
- pydeflate/deflate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- pydeflate/deflate/deflators.py,sha256=hyLFoX46BAn5m8gTLjw-TFv3x3W6CTQmvmUvq5a_cio,7768
10
- pydeflate/deflate/legacy_deflate.py,sha256=9pfqsi5KeWgP1yhXeI6K7bAjUeFY-fmRxrpDB7Zu0zo,3900
11
- pydeflate/exchange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- pydeflate/exchange/exchangers.py,sha256=TQ4puU1T2fFQ5gpTP1RUyqJMIXZc1voOyTtS2wj1zrk,6721
13
- pydeflate/pydeflate_config.py,sha256=5s4SLJf5is5XcUgJHDRx4f27pPiaVh0H2BL8w9QjW0k,1097
14
- pydeflate/settings/emu.json,sha256=BIvbiMUeHUtCESR3sMcBNrS028yp2YraCJdhDJGvAAo,133
15
- pydeflate/settings/oecd_codes.json,sha256=jAKI1EgQP4rttjoG3Z-44r1tUJrIEzPCZF5V2aboQhE,911
16
- pydeflate/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- pydeflate/sources/common.py,sha256=zm8fvPES4g1BWzVAGiLX7wMOEfMSdqdeQ_RIm3ucR0E,9978
18
- pydeflate/sources/dac.py,sha256=ngFiApGZ_tIQg74ogGVTIbGUA0efnF1SYwfUuqGofOQ,3791
19
- pydeflate/sources/imf.py,sha256=fuUq_dq_fcxd-bz-VokqPTxEttyFwHunUSEeGDAmGMc,7167
20
- pydeflate/sources/world_bank.py,sha256=uMHidFVgEpj1HVUnNhIZV-rV64hsCBV9ZAbYKk6H0Vw,9333
21
- pydeflate/utils.py,sha256=tJBd271WzZxVhW9ZMiIRHR0fZWr_MagAYLdmXXaUY3M,3983
22
- pydeflate-2.1.3.dist-info/LICENSE,sha256=q5tm9mQxwSbV5Ivvjxs7MMqBgan6DM8I4r4irPvmqZM,1075
23
- pydeflate-2.1.3.dist-info/METADATA,sha256=uko5SoGA28g70lBi567CZnZ5upLCPk-GShbVHr-G2Ts,12437
24
- pydeflate-2.1.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
25
- pydeflate-2.1.3.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any