pydpm_xl 0.1.10__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.
Files changed (94) hide show
  1. py_dpm/AST/ASTConstructor.py +503 -0
  2. py_dpm/AST/ASTObjects.py +827 -0
  3. py_dpm/AST/ASTTemplate.py +101 -0
  4. py_dpm/AST/ASTVisitor.py +13 -0
  5. py_dpm/AST/MLGeneration.py +588 -0
  6. py_dpm/AST/ModuleAnalyzer.py +79 -0
  7. py_dpm/AST/ModuleDependencies.py +203 -0
  8. py_dpm/AST/WhereClauseChecker.py +12 -0
  9. py_dpm/AST/__init__.py +0 -0
  10. py_dpm/AST/check_operands.py +302 -0
  11. py_dpm/DataTypes/ScalarTypes.py +324 -0
  12. py_dpm/DataTypes/TimeClasses.py +370 -0
  13. py_dpm/DataTypes/TypePromotion.py +195 -0
  14. py_dpm/DataTypes/__init__.py +0 -0
  15. py_dpm/Exceptions/__init__.py +0 -0
  16. py_dpm/Exceptions/exceptions.py +84 -0
  17. py_dpm/Exceptions/messages.py +114 -0
  18. py_dpm/OperationScopes/OperationScopeService.py +247 -0
  19. py_dpm/OperationScopes/__init__.py +0 -0
  20. py_dpm/Operators/AggregateOperators.py +138 -0
  21. py_dpm/Operators/BooleanOperators.py +30 -0
  22. py_dpm/Operators/ClauseOperators.py +159 -0
  23. py_dpm/Operators/ComparisonOperators.py +69 -0
  24. py_dpm/Operators/ConditionalOperators.py +362 -0
  25. py_dpm/Operators/NumericOperators.py +101 -0
  26. py_dpm/Operators/Operator.py +388 -0
  27. py_dpm/Operators/StringOperators.py +27 -0
  28. py_dpm/Operators/TimeOperators.py +53 -0
  29. py_dpm/Operators/__init__.py +0 -0
  30. py_dpm/Utils/ValidationsGenerationUtils.py +429 -0
  31. py_dpm/Utils/__init__.py +0 -0
  32. py_dpm/Utils/operands_mapping.py +73 -0
  33. py_dpm/Utils/operator_mapping.py +89 -0
  34. py_dpm/Utils/tokens.py +172 -0
  35. py_dpm/Utils/utils.py +2 -0
  36. py_dpm/ValidationsGeneration/PropertiesConstraintsProcessor.py +190 -0
  37. py_dpm/ValidationsGeneration/Utils.py +364 -0
  38. py_dpm/ValidationsGeneration/VariantsProcessor.py +265 -0
  39. py_dpm/ValidationsGeneration/__init__.py +0 -0
  40. py_dpm/ValidationsGeneration/auxiliary_functions.py +98 -0
  41. py_dpm/__init__.py +61 -0
  42. py_dpm/api/__init__.py +140 -0
  43. py_dpm/api/ast_generator.py +438 -0
  44. py_dpm/api/complete_ast.py +241 -0
  45. py_dpm/api/data_dictionary_validation.py +577 -0
  46. py_dpm/api/migration.py +77 -0
  47. py_dpm/api/semantic.py +224 -0
  48. py_dpm/api/syntax.py +182 -0
  49. py_dpm/client.py +106 -0
  50. py_dpm/data_handlers.py +99 -0
  51. py_dpm/db_utils.py +117 -0
  52. py_dpm/grammar/__init__.py +0 -0
  53. py_dpm/grammar/dist/__init__.py +0 -0
  54. py_dpm/grammar/dist/dpm_xlLexer.interp +428 -0
  55. py_dpm/grammar/dist/dpm_xlLexer.py +804 -0
  56. py_dpm/grammar/dist/dpm_xlLexer.tokens +106 -0
  57. py_dpm/grammar/dist/dpm_xlParser.interp +249 -0
  58. py_dpm/grammar/dist/dpm_xlParser.py +5224 -0
  59. py_dpm/grammar/dist/dpm_xlParser.tokens +106 -0
  60. py_dpm/grammar/dist/dpm_xlParserListener.py +742 -0
  61. py_dpm/grammar/dist/dpm_xlParserVisitor.py +419 -0
  62. py_dpm/grammar/dist/listeners.py +10 -0
  63. py_dpm/grammar/dpm_xlLexer.g4 +435 -0
  64. py_dpm/grammar/dpm_xlParser.g4 +260 -0
  65. py_dpm/migration.py +282 -0
  66. py_dpm/models.py +2139 -0
  67. py_dpm/semantics/DAG/DAGAnalyzer.py +158 -0
  68. py_dpm/semantics/DAG/__init__.py +0 -0
  69. py_dpm/semantics/SemanticAnalyzer.py +320 -0
  70. py_dpm/semantics/Symbols.py +223 -0
  71. py_dpm/semantics/__init__.py +0 -0
  72. py_dpm/utils/__init__.py +0 -0
  73. py_dpm/utils/ast_serialization.py +481 -0
  74. py_dpm/views/data_types.sql +12 -0
  75. py_dpm/views/datapoints.sql +65 -0
  76. py_dpm/views/hierarchy_operand_reference.sql +11 -0
  77. py_dpm/views/hierarchy_preconditions.sql +13 -0
  78. py_dpm/views/hierarchy_variables.sql +26 -0
  79. py_dpm/views/hierarchy_variables_context.sql +14 -0
  80. py_dpm/views/key_components.sql +18 -0
  81. py_dpm/views/module_from_table.sql +11 -0
  82. py_dpm/views/open_keys.sql +13 -0
  83. py_dpm/views/operation_info.sql +27 -0
  84. py_dpm/views/operation_list.sql +18 -0
  85. py_dpm/views/operations_versions_from_module_version.sql +30 -0
  86. py_dpm/views/precondition_info.sql +17 -0
  87. py_dpm/views/report_type_operand_reference_info.sql +18 -0
  88. py_dpm/views/subcategory_info.sql +17 -0
  89. py_dpm/views/table_info.sql +19 -0
  90. pydpm_xl-0.1.10.dist-info/LICENSE +674 -0
  91. pydpm_xl-0.1.10.dist-info/METADATA +50 -0
  92. pydpm_xl-0.1.10.dist-info/RECORD +94 -0
  93. pydpm_xl-0.1.10.dist-info/WHEEL +4 -0
  94. pydpm_xl-0.1.10.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,50 @@
1
+ Metadata-Version: 2.3
2
+ Name: pydpm_xl
3
+ Version: 0.1.10
4
+ Summary: Python library for DPM-XL data processing and analysis
5
+ License: GPL-3.0-or-later
6
+ Keywords: dpm,dpm-xl,data-processing,migration,analysis
7
+ Author: MeaningfulData S.L.
8
+ Author-email: info@meaningfuldata.eu
9
+ Requires-Python: >=3.10
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Classifier: Topic :: Database
19
+ Classifier: Topic :: Scientific/Engineering
20
+ Requires-Dist: alembic (>=1.16.2,<2.0.0)
21
+ Requires-Dist: antlr4-python3-runtime (>=4.13.2,<5.0.0)
22
+ Requires-Dist: click (>=8.2.1,<9.0.0)
23
+ Requires-Dist: pandas (>=2.3.0,<3.0.0)
24
+ Requires-Dist: pyodbc (>=5.2.0,<6.0.0)
25
+ Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
26
+ Requires-Dist: rich (>=14.0.0,<15.0.0)
27
+ Requires-Dist: sqlalchemy (>=2.0.41,<3.0.0)
28
+ Description-Content-Type: text/markdown
29
+
30
+ # pyDPM
31
+
32
+ ## Installation
33
+
34
+ `poetry install`
35
+
36
+ ## Usage
37
+
38
+ ### Load DB
39
+
40
+ `poetry run pydpm migrate-access ./path-to-release.accdb`
41
+
42
+ ### Syntax validation
43
+
44
+ `poetry run pydpm syntax "expression"`
45
+
46
+ ### Semantic validation
47
+
48
+ `poetry run pydpm semantic "expression"`
49
+
50
+
@@ -0,0 +1,94 @@
1
+ py_dpm/AST/ASTConstructor.py,sha256=2J7UntCrHhRmS_ZcmFvmkc4_2u_s3BlN_repgKC3iUg,21578
2
+ py_dpm/AST/ASTObjects.py,sha256=xqe8rYJwClq9uv9yl1YMjwuE9avRwYVEeSBl3D1XOPM,22219
3
+ py_dpm/AST/ASTTemplate.py,sha256=VrBoeSFW2Ngt_bMYkIex3MDYl1AdskX7xrYy24eveTg,2927
4
+ py_dpm/AST/ASTVisitor.py,sha256=yL9UpPMQlq8ToHR8COyFYpuSChnDRjnkQHbCyYX0tsY,509
5
+ py_dpm/AST/MLGeneration.py,sha256=55c2nDaIVHBrJf3FcmU3ZYI5gUpYLoHvvCvDV6ZJw8I,24224
6
+ py_dpm/AST/ModuleAnalyzer.py,sha256=D93NORVMyEMiaAeVsRuw1qMSd5V5fF1Syh4mpo2gtKA,2848
7
+ py_dpm/AST/ModuleDependencies.py,sha256=3Rx5rNLlaeM8UaqCR2lwy5uAK-jwum8eYGfJwzWAua8,8332
8
+ py_dpm/AST/WhereClauseChecker.py,sha256=zsySpOPMmZgznZnN8Y6WdS-4qARingBmQa2c19xvYlc,322
9
+ py_dpm/AST/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ py_dpm/AST/check_operands.py,sha256=fqZf2roHObjxxGfW7uqWWy3piMl_Lhg0u78TN5zMAWM,12998
11
+ py_dpm/DataTypes/ScalarTypes.py,sha256=annQugU0iV457lruDDR2rNyZB-qGw-ei0J-p1CPp0Xs,6882
12
+ py_dpm/DataTypes/TimeClasses.py,sha256=MmxsHn9sqBCQ-YkTKlGn-yow-Y-XVMRvrUEthqhT0JM,11379
13
+ py_dpm/DataTypes/TypePromotion.py,sha256=Js_HBczw_cLdauzg5XtfDdJOGJdmQGtMnV_aTNkYgR0,9587
14
+ py_dpm/DataTypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ py_dpm/Exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ py_dpm/Exceptions/exceptions.py,sha256=O1InotUVMIcgOMeULKCPs6lJ5t54eVT1I3osFX1Jm68,2232
17
+ py_dpm/Exceptions/messages.py,sha256=UwY6QIK8c-POcDCc9HYbZFGArCIYAanUGNh2LNKPx3U,7534
18
+ py_dpm/OperationScopes/OperationScopeService.py,sha256=Pe0VhV1hxVWECM-siw7e19LUepUCwPGQbrEJ7SjmK7s,11924
19
+ py_dpm/OperationScopes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ py_dpm/Operators/AggregateOperators.py,sha256=EIsvHeNuCLPvB40mgNrTzDs6PnkVK8seddQDgduyRgU,4877
21
+ py_dpm/Operators/BooleanOperators.py,sha256=keqTxYrtzd0ZpcFoxkNwMOU82p-_SeQXftlg5No17VQ,497
22
+ py_dpm/Operators/ClauseOperators.py,sha256=QWRoISBOwpo1AyNSVCBewWHf1SMtWbUznhsseiSyfVU,6895
23
+ py_dpm/Operators/ComparisonOperators.py,sha256=6irfDhwxhCwz0tOfX4oOJSl2Kvpo3Wzg3wshNyHiCs8,1133
24
+ py_dpm/Operators/ConditionalOperators.py,sha256=B7e_wd-ASUmvsFNGSR2PLTgWQbJKR5xj6Qqdn2iWaGs,16031
25
+ py_dpm/Operators/NumericOperators.py,sha256=Dr6dIgfrKmv9muHCJPhNYINEjMpkZBa-Sa0oQPGHRfU,1761
26
+ py_dpm/Operators/Operator.py,sha256=aYP8xnsnnmEZUxEvpJrJB4hiYdQT2Ki0ZFGMsuuwQnU,18898
27
+ py_dpm/Operators/StringOperators.py,sha256=6bJuSUO12tkdsaDygE2bP4G3ba6ybxyK41bowE0UnW4,502
28
+ py_dpm/Operators/TimeOperators.py,sha256=klcFIYFonGVRNhr66Ipu1lwOr9CxzDGIbA3QQLmxdTo,2236
29
+ py_dpm/Operators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ py_dpm/Utils/ValidationsGenerationUtils.py,sha256=1yINJ_ANqr9BbIDdPm4WxRG2EQu0yaRICikYG1nIhzs,22652
31
+ py_dpm/Utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ py_dpm/Utils/operands_mapping.py,sha256=CDWvoKxh-nBcEKMxrUmMnaCveE8dExjeuFUa-lgK8Rg,2239
33
+ py_dpm/Utils/operator_mapping.py,sha256=XXabdrEI3HKeaEmAbsBCJ-a9iUZSIxEsHb-wZL3fF0g,1907
34
+ py_dpm/Utils/tokens.py,sha256=fR_-2erU9u8NsY-HLWVGaPOY4mwSY1lnI5IkgL3GxNU,3484
35
+ py_dpm/Utils/utils.py,sha256=9YDDCooXTHsr_Nc2nPdDjbCeWVp28CaaAvSbiVqi3So,64
36
+ py_dpm/ValidationsGeneration/PropertiesConstraintsProcessor.py,sha256=0Z2i_I5iazgKPh5qQfaUmZWsPmpClvu_NNGjEMer00s,7943
37
+ py_dpm/ValidationsGeneration/Utils.py,sha256=cownt58HNxIxt1dLAK8dYolpDfzjiR_TqDCbJJoOd4k,18279
38
+ py_dpm/ValidationsGeneration/VariantsProcessor.py,sha256=bFkNwCox7DpR-yEWDSAwLj-kmajiEgjiJwWaCKGIkPI,12482
39
+ py_dpm/ValidationsGeneration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ py_dpm/ValidationsGeneration/auxiliary_functions.py,sha256=4msDLINbwNb4gTc05x_351eb_VIra1H0lWE1hPijlVI,4187
41
+ py_dpm/__init__.py,sha256=nYSoCbSyIpkAYReZ8YKssPkW3CQ3GoAtwgkiAURBfEc,1881
42
+ py_dpm/api/__init__.py,sha256=GjiHVxqxvvdQ56rHUkfRx-Ia8lf1jukAphDMX3O2f3U,4577
43
+ py_dpm/api/ast_generator.py,sha256=AoB8Ai2BmVBWg-dC7_KJqdsTbEmNsdv1rrj-QefE6PQ,15900
44
+ py_dpm/api/complete_ast.py,sha256=q9CzfaanxM7lmE-3qz7q7RK_Zx7w7Vb_8asd7QVE2SQ,9127
45
+ py_dpm/api/data_dictionary_validation.py,sha256=LUHoa-LPcpszMFyxF3isFVSwHkEwIZxFqhj7qQvF_pM,21823
46
+ py_dpm/api/migration.py,sha256=B_JuYdCWoh1t02gEW76xeroRoxUh8twZ0UxFBJLHAOM,2505
47
+ py_dpm/api/semantic.py,sha256=DAlzHVsTRN2UaNjeKqmyekbVcenyiaCCMfIOqXFMZEw,7864
48
+ py_dpm/api/syntax.py,sha256=MxsoRgX3NB6tXxPiYUx6M15h2ATECxnk_wZU4egiyhs,5909
49
+ py_dpm/client.py,sha256=rkwRlpa-1zWN1nPfcpZ2cahGSe3LJ912niuvRh1KDrY,3273
50
+ py_dpm/data_handlers.py,sha256=_aJqkyflJr1oNsOQ24nB9yzfrpxu28NPrpoil2aAm58,4395
51
+ py_dpm/db_utils.py,sha256=jEc8RP6sYWIPNfB0rSvY8D1oazMrpMeWNt_2rxF3C0E,3722
52
+ py_dpm/grammar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ py_dpm/grammar/dist/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ py_dpm/grammar/dist/dpm_xlLexer.interp,sha256=RjmDpyEe2LuCmL0QKaR5VLKcxK4UqqTpdfvyQJqTcRU,56233
55
+ py_dpm/grammar/dist/dpm_xlLexer.py,sha256=ZplvVQr4xaFy5TFDhETSTnUPR41wxJB0ZjDGyXJ0Ymw,52592
56
+ py_dpm/grammar/dist/dpm_xlLexer.tokens,sha256=OonvEQY7mI47FVtW2zYz8dyesSj2mu32GM_yPyJSwy4,1239
57
+ py_dpm/grammar/dist/dpm_xlParser.interp,sha256=PrAVJ63e8xdyBKXjEh2_oqDzfHS4OkllE5ENsp8qTBo,16836
58
+ py_dpm/grammar/dist/dpm_xlParser.py,sha256=QMR7_cBTcDdNPtkC3ewtGLfb-OFNAwMyMNdvbjSTWlg,188908
59
+ py_dpm/grammar/dist/dpm_xlParser.tokens,sha256=OonvEQY7mI47FVtW2zYz8dyesSj2mu32GM_yPyJSwy4,1239
60
+ py_dpm/grammar/dist/dpm_xlParserListener.py,sha256=zozgQ8RkWrGruQeKMcRbsyxXhp8PSimhPrsAWZFdlg8,24685
61
+ py_dpm/grammar/dist/dpm_xlParserVisitor.py,sha256=oVo50C8tio3cqw5vlbj7YTHVS_xzHmyNDb-7jQcFBtA,14782
62
+ py_dpm/grammar/dist/listeners.py,sha256=mGGB8hY1WfHXXvbXjzKXAX2DZHO_gcupY66-EvP7kMo,356
63
+ py_dpm/grammar/dpm_xlLexer.g4,sha256=ErQonx29bpwWXyrAPxCtnfZChRX5-bYXig8ATXBClSU,13097
64
+ py_dpm/grammar/dpm_xlParser.g4,sha256=vlE8jtjpZFGDr6b0aCARm1mE6aZdzVREOboJmhJw1cw,7638
65
+ py_dpm/migration.py,sha256=o68olXSYRUSoB6r5vRc2P_EXSyJqmcStrE4MKENImxM,9940
66
+ py_dpm/models.py,sha256=luPnQ7Ga9Cbdikxjqa9DX5ZSv4ExPwZjxEQpjIlad6U,98235
67
+ py_dpm/semantics/DAG/DAGAnalyzer.py,sha256=UVclW5H5D-YJURcgCrzNPwhOZK7GFnBK6fMTEo9yA6s,4872
68
+ py_dpm/semantics/DAG/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ py_dpm/semantics/SemanticAnalyzer.py,sha256=mq2J_uGIPJ0JzbCuA95FtEMB6empvVDBSxgimLVQ4Y4,13644
70
+ py_dpm/semantics/Symbols.py,sha256=cayLNsy7b_6NGls8L1fXsYbvq8v7doPL7lv9XubjxBQ,7632
71
+ py_dpm/semantics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ py_dpm/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ py_dpm/utils/ast_serialization.py,sha256=6_InAlnagWwhv9mHLdMsqp07dSL2L6WmFLJhRPSDBB4,18262
74
+ py_dpm/views/data_types.sql,sha256=dt3DLanxyooT9YcwDoRE1yriot-RN_E8YrsOhE0Hy9U,354
75
+ py_dpm/views/datapoints.sql,sha256=H7xV7j2XGEEZTNs6VnX5AtZ2uz8GS9IdWYgGt2GPH20,2631
76
+ py_dpm/views/hierarchy_operand_reference.sql,sha256=EhSDs4t3JPhsqF48i_qDb_q0CUmGi0M6pxS0qKe1Bsk,615
77
+ py_dpm/views/hierarchy_preconditions.sql,sha256=DKOepF-6auz951JbCPvtklIYz0uvGOqPdQgk6FfmG6k,599
78
+ py_dpm/views/hierarchy_variables.sql,sha256=hJ37PkPvQoTOmXGQ2kO4wwv8MW7lxjW9c6HMWY5asKA,1417
79
+ py_dpm/views/hierarchy_variables_context.sql,sha256=QkyjkzO6BagryLqzI0t4AAoa5PcnTv1Z7h2VQDiHVjI,885
80
+ py_dpm/views/key_components.sql,sha256=M6A0xOnl59o8pBIYD95IlSfF4l4aCHadWboDEZa6p_w,985
81
+ py_dpm/views/module_from_table.sql,sha256=rELujOsfaJ4YNEydhifK2Kn8X-ZokZ8sG81hPGsUgV4,465
82
+ py_dpm/views/open_keys.sql,sha256=tt3073WfZwKaZhqRseq1gVLDulO8SlX8BYFCTm7hoZQ,573
83
+ py_dpm/views/operation_info.sql,sha256=DOEOm_nyq0xZeDd9qS5diTchjsK0lgGDJOcmDc1OTpA,999
84
+ py_dpm/views/operation_list.sql,sha256=-PJITiXKo436sd7doB9tnp_IlwU6ZxOEGHK28h7bYks,887
85
+ py_dpm/views/operations_versions_from_module_version.sql,sha256=mqoTWp4Ypdf7PxQBI-q4zkbvVQRDBCYWbZa9tXtuBog,1439
86
+ py_dpm/views/precondition_info.sql,sha256=l24U8c6NtwFcUDFwb2FqH9h0xgpoi9WbvsKUgJq1ig0,764
87
+ py_dpm/views/report_type_operand_reference_info.sql,sha256=_lBK9HQILk9yLD7cW9Ieud-vfTc-KQiU3WGAnN6LuNY,977
88
+ py_dpm/views/subcategory_info.sql,sha256=V8UZiGjicmOWfBEHX2v6ktSMR4r_f1YiGD_LeN9Gn6o,812
89
+ py_dpm/views/table_info.sql,sha256=htRXIVJya44CZAqjO5sVaJJwiQBQ30oiLFFu5DiBpR4,793
90
+ pydpm_xl-0.1.10.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
91
+ pydpm_xl-0.1.10.dist-info/METADATA,sha256=b0HTaxmxj2ihk50J_KSbP6frE37BsDsrieNL7RaXFvc,1450
92
+ pydpm_xl-0.1.10.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
93
+ pydpm_xl-0.1.10.dist-info/entry_points.txt,sha256=LdUnosyV80iryxbRvfToW7w78nl0uuRoXaADfcmJM4M,44
94
+ pydpm_xl-0.1.10.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.0.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ pydpm=py_dpm.client:main
3
+