b1sl-python 0.1.0__tar.gz → 0.1.2__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.
Files changed (624) hide show
  1. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/.env.example +4 -0
  2. b1sl_python-0.1.2/.github/workflows/ci.yml +37 -0
  3. b1sl_python-0.1.2/.github/workflows/publish.yml +49 -0
  4. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/Makefile +15 -0
  5. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/PKG-INFO +45 -9
  6. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/README.md +36 -7
  7. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/pyproject.toml +25 -6
  8. b1sl_python-0.1.2/scratch/investigate_enum.py +56 -0
  9. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/__init__.py +20 -20
  10. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/async_client.py +32 -7
  11. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/async_rest_adapter.py +26 -18
  12. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/base_adapter.py +43 -0
  13. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/client.py +22 -1
  14. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/config.py +4 -0
  15. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/config_manager.py +1 -1
  16. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/entities/__init__.py +292 -282
  17. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/__init__.py +1361 -537
  18. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/complex_types.py +6928 -0
  19. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/businesspartners.py +546 -0
  20. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/finance.py +453 -0
  21. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/general.py +4589 -0
  22. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/inventory.py +763 -0
  23. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/production.py +258 -0
  24. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/purchasing.py +55 -0
  25. b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/sales.py +246 -0
  26. b1sl_python-0.1.2/src/b1sl/b1sl/fields/base.py +24 -0
  27. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/inventory.py +1 -1
  28. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/base.py +1 -2
  29. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/base.py +34 -1
  30. b1sl_python-0.1.2/src/b1sl/b1sl/resources/odata.py +165 -0
  31. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/rest_adapter.py +11 -11
  32. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/conftest.py +3 -0
  33. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/conftest.py +1 -3
  34. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_async_adapter.py +4 -4
  35. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_b1sl_adapter.py +14 -15
  36. b1sl_python-0.1.2/tests/unit/test_dry_run.py +233 -0
  37. b1sl_python-0.1.2/tests/unit/test_odata_builder.py +87 -0
  38. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/uv.lock +3 -3
  39. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/complex_types.py +0 -6926
  40. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/businesspartners.py +0 -544
  41. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/finance.py +0 -451
  42. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/general.py +0 -4587
  43. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/inventory.py +0 -761
  44. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/production.py +0 -256
  45. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/purchasing.py +0 -53
  46. b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/sales.py +0 -244
  47. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/.gitignore +0 -0
  48. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/LICENSE +0 -0
  49. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/ROADMAP.md +0 -0
  50. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/configs/dev.json +0 -0
  51. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/configs/qa.json.example +0 -0
  52. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/__init__.py +0 -0
  53. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/_types.py +0 -0
  54. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/adapter.py +0 -0
  55. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/adapter_protocol.py +0 -0
  56. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/__init__.py +0 -0
  57. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/__init__.py +0 -0
  58. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/__init__.py +0 -0
  59. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/base.py +0 -0
  60. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/odata_decode_middleware.py +0 -0
  61. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/odata_transform_url_middleware.py +0 -0
  62. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/environment.py +0 -0
  63. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/exceptions/exceptions.py +0 -0
  64. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/_generated/__init__.py +0 -0
  65. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/_generated/entities/__init__.py +0 -0
  66. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/logging_utils.py +0 -0
  67. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/__init__.py +0 -0
  68. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/__init__.py +0 -0
  69. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/_types.py +0 -0
  70. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/complex_types.py +0 -0
  71. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/__init__.py +0 -0
  72. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/businesspartners.py +0 -0
  73. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/finance.py +0 -0
  74. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/general.py +0 -0
  75. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/production.py +0 -0
  76. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/purchasing.py +0 -0
  77. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/sales.py +0 -0
  78. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/enums.py +0 -0
  79. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/resources/__init__.py +0 -0
  80. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_overrides/inventory.py +0 -0
  81. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/odata_query_model.py +0 -0
  82. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/paginated_result.py +0 -0
  83. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/result.py +0 -0
  84. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/__init__.py +0 -0
  85. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/__init__.py +0 -0
  86. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_category.py +0 -0
  87. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_category_service.py +0 -0
  88. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_segmentation_categories.py +0 -0
  89. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_segmentations.py +0 -0
  90. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accounts_service.py +0 -0
  91. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accrual_types.py +0 -0
  92. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accrual_types_service.py +0 -0
  93. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activities.py +0 -0
  94. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activities_service.py +0 -0
  95. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_locations.py +0 -0
  96. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_recipient_lists.py +0 -0
  97. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_recipient_lists_service.py +0 -0
  98. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_statuses.py +0 -0
  99. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_types.py +0 -0
  100. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/additional_expenses.py +0 -0
  101. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/address_service.py +0 -0
  102. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alert_managements.py +0 -0
  103. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alternate_cat_num.py +0 -0
  104. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alternative_items_service.py +0 -0
  105. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_requests.py +0 -0
  106. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_requests_service.py +0 -0
  107. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_stages.py +0 -0
  108. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_stages_service.py +0 -0
  109. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_templates.py +0 -0
  110. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_templates_service.py +0 -0
  111. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization.py +0 -0
  112. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_credit_memo.py +0 -0
  113. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_credit_memo_service.py +0 -0
  114. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_service.py +0 -0
  115. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_classes.py +0 -0
  116. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_classes_service.py +0 -0
  117. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_depreciation_groups.py +0 -0
  118. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_depreciation_groups_service.py +0 -0
  119. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_groups.py +0 -0
  120. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_groups_service.py +0 -0
  121. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_manual_depreciation.py +0 -0
  122. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_manual_depreciation_service.py +0 -0
  123. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_retirement.py +0 -0
  124. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_retirement_service.py +0 -0
  125. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_transfer.py +0 -0
  126. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_transfer_service.py +0 -0
  127. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attachments2.py +0 -0
  128. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attribute_groups.py +0 -0
  129. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attribute_groups_service.py +0 -0
  130. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_charges_allocation_codes.py +0 -0
  131. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_charges_allocation_codes_service.py +0 -0
  132. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_pages.py +0 -0
  133. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_statements.py +0 -0
  134. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_statements_service.py +0 -0
  135. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/banks.py +0 -0
  136. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bar_codes.py +0 -0
  137. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bar_codes_service.py +0 -0
  138. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/batch_number_details.py +0 -0
  139. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bill_of_exchange_transactions.py +0 -0
  140. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_attributes.py +0 -0
  141. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_attributes_service.py +0 -0
  142. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_fields.py +0 -0
  143. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_fields_service.py +0 -0
  144. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_locations.py +0 -0
  145. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_locations_service.py +0 -0
  146. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/blanket_agreements.py +0 -0
  147. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/blanket_agreements_service.py +0 -0
  148. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_document_types.py +0 -0
  149. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_document_types_service.py +0 -0
  150. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_instructions.py +0 -0
  151. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_instructions_service.py +0 -0
  152. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_lines_service.py +0 -0
  153. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_portfolios.py +0 -0
  154. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_portfolios_service.py +0 -0
  155. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_fiscal_registry_id.py +0 -0
  156. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_opening_balance_service.py +0 -0
  157. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_priorities.py +0 -0
  158. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/branches.py +0 -0
  159. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/branches_service.py +0 -0
  160. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_beverage_indexers.py +0 -0
  161. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_beverage_indexers_service.py +0 -0
  162. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_fuel_indexers.py +0 -0
  163. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_fuel_indexers_service.py +0 -0
  164. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_multi_indexers.py +0 -0
  165. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_numeric_indexers.py +0 -0
  166. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_string_indexers.py +0 -0
  167. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budget_distributions.py +0 -0
  168. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budget_scenarios.py +0 -0
  169. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budgets.py +0 -0
  170. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_groups.py +0 -0
  171. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_properties.py +0 -0
  172. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_properties_service.py +0 -0
  173. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partners.py +0 -0
  174. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partners_service.py +0 -0
  175. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_places.py +0 -0
  176. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaign_response_type.py +0 -0
  177. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaign_response_type_service.py +0 -0
  178. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaigns.py +0 -0
  179. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaigns_service.py +0 -0
  180. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_discounts.py +0 -0
  181. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_discounts_service.py +0 -0
  182. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_flow_line_items.py +0 -0
  183. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_flow_line_items_service.py +0 -0
  184. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/certificate_series.py +0 -0
  185. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/certificate_series_service.py +0 -0
  186. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/change_logs_service.py +0 -0
  187. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/chart_of_accounts.py +0 -0
  188. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/check_lines_service.py +0 -0
  189. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/checksfor_payment.py +0 -0
  190. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/choose_from_list.py +0 -0
  191. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/client_mixin.py +0 -0
  192. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/closing_date_procedure.py +0 -0
  193. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cockpits.py +0 -0
  194. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cockpits_service.py +0 -0
  195. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/commission_groups.py +0 -0
  196. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/company_service.py +0 -0
  197. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/contacts.py +0 -0
  198. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/contract_templates.py +0 -0
  199. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice.py +0 -0
  200. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_reversal.py +0 -0
  201. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_reversal_service.py +0 -0
  202. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_service.py +0 -0
  203. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice.py +0 -0
  204. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_reversal.py +0 -0
  205. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_reversal_service.py +0 -0
  206. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_service.py +0 -0
  207. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_center_types.py +0 -0
  208. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_center_types_service.py +0 -0
  209. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_element_service.py +0 -0
  210. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_elements.py +0 -0
  211. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/counties.py +0 -0
  212. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/counties_service.py +0 -0
  213. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/countries.py +0 -0
  214. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/countries_service.py +0 -0
  215. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_card_payments.py +0 -0
  216. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_cards.py +0 -0
  217. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_lines_service.py +0 -0
  218. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_notes.py +0 -0
  219. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_notes_service.py +0 -0
  220. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_payment_methods.py +0 -0
  221. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/currencies.py +0 -0
  222. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customer_equipment_cards.py +0 -0
  223. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customs_declaration.py +0 -0
  224. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customs_groups.py +0 -0
  225. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cycle_count_determinations.py +0 -0
  226. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cycle_count_determinations_service.py +0 -0
  227. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dashboard_packages_service.py +0 -0
  228. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deductible_tax_service.py +0 -0
  229. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deductible_taxes.py +0 -0
  230. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_groups.py +0 -0
  231. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_hierarchies.py +0 -0
  232. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_sub_groups.py +0 -0
  233. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_sub_groups_service.py +0 -0
  234. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/delivery_notes.py +0 -0
  235. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/delivery_notes_service.py +0 -0
  236. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/departments.py +0 -0
  237. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/departments_service.py +0 -0
  238. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deposits.py +0 -0
  239. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deposits_service.py +0 -0
  240. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_areas.py +0 -0
  241. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_areas_service.py +0 -0
  242. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_type_pools.py +0 -0
  243. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_type_pools_service.py +0 -0
  244. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_types.py +0 -0
  245. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_types_service.py +0 -0
  246. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/determination_criterias.py +0 -0
  247. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/determination_criterias_service.py +0 -0
  248. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dimensions.py +0 -0
  249. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dimensions_service.py +0 -0
  250. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/distribution_rules.py +0 -0
  251. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/distribution_rules_service.py +0 -0
  252. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dnf_code_setup.py +0 -0
  253. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dnf_code_setup_service.py +0 -0
  254. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/down_payments.py +0 -0
  255. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/down_payments_service.py +0 -0
  256. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/drafts.py +0 -0
  257. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/drafts_service.py +0 -0
  258. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_letters.py +0 -0
  259. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_terms.py +0 -0
  260. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_terms_service.py +0 -0
  261. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dynamic_system_strings.py +0 -0
  262. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_communication_action_service.py +0 -0
  263. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_communication_actions_service.py +0 -0
  264. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_file_formats.py +0 -0
  265. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_file_formats_service.py +0 -0
  266. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/email_groups.py +0 -0
  267. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/email_groups_service.py +0 -0
  268. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_id_type.py +0 -0
  269. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_id_type_service.py +0 -0
  270. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_position.py +0 -0
  271. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_position_service.py +0 -0
  272. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_roles_setup.py +0 -0
  273. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_roles_setup_service.py +0 -0
  274. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_status.py +0 -0
  275. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_status_service.py +0 -0
  276. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_transfers.py +0 -0
  277. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_transfers_service.py +0 -0
  278. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employees_info.py +0 -0
  279. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employment_category_service.py +0 -0
  280. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employment_categorys.py +0 -0
  281. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/enhanced_discount_groups.py +0 -0
  282. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/enhanced_discount_groups_service.py +0 -0
  283. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/exceptional_event_service.py +0 -0
  284. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/exceptional_events.py +0 -0
  285. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/extended_translations.py +0 -0
  286. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/extended_translations_service.py +0 -0
  287. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/external_calls_service.py +0 -0
  288. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/external_reconciliations_service.py +0 -0
  289. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fa_account_determinations.py +0 -0
  290. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fa_account_determinations_service.py +0 -0
  291. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/factoring_indicators.py +0 -0
  292. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/financial_years.py +0 -0
  293. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/financial_years_service.py +0 -0
  294. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fiscal_printer.py +0 -0
  295. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fiscal_printer_service.py +0 -0
  296. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fixed_asset_items_service.py +0 -0
  297. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/form_preferences.py +0 -0
  298. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/formatted_searches.py +0 -0
  299. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/forms1099.py +0 -0
  300. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gl_account_advanced_rules.py +0 -0
  301. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gl_account_advanced_rules_service.py +0 -0
  302. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/goods_return_request.py +0 -0
  303. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/goods_return_request_service.py +0 -0
  304. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gov_pay_codes.py +0 -0
  305. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gov_pay_codes_service.py +0 -0
  306. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gt_is_service.py +0 -0
  307. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/holidays.py +0 -0
  308. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/house_bank_accounts.py +0 -0
  309. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/incoming_payments.py +0 -0
  310. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/india_hsn.py +0 -0
  311. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/india_hsn_service.py +0 -0
  312. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/industries.py +0 -0
  313. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/integration_packages_configure.py +0 -0
  314. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/integration_packages_configure_service.py +0 -0
  315. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/internal_reconciliations.py +0 -0
  316. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/internal_reconciliations_service.py +0 -0
  317. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/intrastat_configuration.py +0 -0
  318. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/intrastat_configuration_service.py +0 -0
  319. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_countings.py +0 -0
  320. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_countings_service.py +0 -0
  321. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_cycles.py +0 -0
  322. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_entries.py +0 -0
  323. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_entry_service.py +0 -0
  324. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_exit_service.py +0 -0
  325. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_exits.py +0 -0
  326. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_opening_balances.py +0 -0
  327. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_opening_balances_service.py +0 -0
  328. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_postings.py +0 -0
  329. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_postings_service.py +0 -0
  330. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_transfer_requests.py +0 -0
  331. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_transfer_requests_service.py +0 -0
  332. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/invoices.py +0 -0
  333. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/invoices_service.py +0 -0
  334. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/item_groups.py +0 -0
  335. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/item_properties.py +0 -0
  336. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/items.py +0 -0
  337. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entries.py +0 -0
  338. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entry_document_type_service.py +0 -0
  339. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entry_document_types.py +0 -0
  340. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_vouchers_service.py +0 -0
  341. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/knowledge_base_solutions.py +0 -0
  342. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/kp_is.py +0 -0
  343. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/kp_is_service.py +0 -0
  344. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs.py +0 -0
  345. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs_codes.py +0 -0
  346. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs_service.py +0 -0
  347. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/legal_data.py +0 -0
  348. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/length_measures.py +0 -0
  349. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/license_service.py +0 -0
  350. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/local_era.py +0 -0
  351. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/manufacturers.py +0 -0
  352. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_groups.py +0 -0
  353. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_groups_service.py +0 -0
  354. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation.py +0 -0
  355. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation_fifo_service.py +0 -0
  356. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation_snb_service.py +0 -0
  357. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/messages.py +0 -0
  358. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/messages_service.py +0 -0
  359. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_add_on_setting.py +0 -0
  360. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_add_on_setting_service.py +0 -0
  361. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_app_service.py +0 -0
  362. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/multi_language_translations.py +0 -0
  363. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nature_of_assessees.py +0 -0
  364. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nature_of_assessees_service.py +0 -0
  365. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/ncm_codes_setup.py +0 -0
  366. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/ncm_codes_setup_service.py +0 -0
  367. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_models.py +0 -0
  368. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_models_service.py +0 -0
  369. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_tax_categories.py +0 -0
  370. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_tax_categories_service.py +0 -0
  371. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_cfop.py +0 -0
  372. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_cst.py +0 -0
  373. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_usage.py +0 -0
  374. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/occurrence_codes.py +0 -0
  375. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/occurrence_codes_service.py +0 -0
  376. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/orders.py +0 -0
  377. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/orders_service.py +0 -0
  378. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/packages_types.py +0 -0
  379. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/partners_setups.py +0 -0
  380. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/partners_setups_service.py +0 -0
  381. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_blocks.py +0 -0
  382. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_blocks_service.py +0 -0
  383. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_calculation_service.py +0 -0
  384. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_drafts.py +0 -0
  385. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_reason_code_service.py +0 -0
  386. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_reason_codes.py +0 -0
  387. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_run_export.py +0 -0
  388. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_terms_types.py +0 -0
  389. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_terms_types_service.py +0 -0
  390. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pick_lists.py +0 -0
  391. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pick_lists_service.py +0 -0
  392. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pos_daily_summary.py +0 -0
  393. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/predefined_texts.py +0 -0
  394. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/predefined_texts_service.py +0 -0
  395. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/price_lists.py +0 -0
  396. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/product_trees.py +0 -0
  397. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/production_orders.py +0 -0
  398. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/profit_centers.py +0 -0
  399. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/profit_centers_service.py +0 -0
  400. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_configuration_service.py +0 -0
  401. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_service.py +0 -0
  402. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_time_sheet.py +0 -0
  403. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_managements.py +0 -0
  404. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/projects.py +0 -0
  405. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/projects_service.py +0 -0
  406. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_credit_notes.py +0 -0
  407. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_credit_notes_service.py +0 -0
  408. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_delivery_notes.py +0 -0
  409. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_delivery_notes_service.py +0 -0
  410. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_down_payments.py +0 -0
  411. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_down_payments_service.py +0 -0
  412. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_invoices.py +0 -0
  413. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_invoices_service.py +0 -0
  414. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_orders.py +0 -0
  415. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_orders_service.py +0 -0
  416. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_quotations.py +0 -0
  417. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_quotations_service.py +0 -0
  418. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_request_service.py +0 -0
  419. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_requests.py +0 -0
  420. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_returns.py +0 -0
  421. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_returns_service.py +0 -0
  422. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_tax_invoices.py +0 -0
  423. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/qr_code_service.py +0 -0
  424. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_auth_groups.py +0 -0
  425. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_categories.py +0 -0
  426. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_service.py +0 -0
  427. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/queue.py +0 -0
  428. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/quotations.py +0 -0
  429. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/quotations_service.py +0 -0
  430. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/recurring_transaction_service.py +0 -0
  431. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/relationships.py +0 -0
  432. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_filter.py +0 -0
  433. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_filter_service.py +0 -0
  434. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_layouts_service.py +0 -0
  435. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_types.py +0 -0
  436. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_types_service.py +0 -0
  437. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_capacities.py +0 -0
  438. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_capacities_service.py +0 -0
  439. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_groups.py +0 -0
  440. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_groups_service.py +0 -0
  441. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_properties.py +0 -0
  442. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_properties_service.py +0 -0
  443. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resources.py +0 -0
  444. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resources_service.py +0 -0
  445. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/retorno_codes.py +0 -0
  446. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/retorno_codes_service.py +0 -0
  447. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/return_request.py +0 -0
  448. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/return_request_service.py +0 -0
  449. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/returns.py +0 -0
  450. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/returns_service.py +0 -0
  451. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/route_stages.py +0 -0
  452. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/route_stages_service.py +0 -0
  453. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_forecast.py +0 -0
  454. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunities.py +0 -0
  455. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_competitors_setup.py +0 -0
  456. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_competitors_setup_service.py +0 -0
  457. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_interests_setup.py +0 -0
  458. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_interests_setup_service.py +0 -0
  459. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_reasons_setup.py +0 -0
  460. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_reasons_setup_service.py +0 -0
  461. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_sources_setup.py +0 -0
  462. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_sources_setup_service.py +0 -0
  463. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_persons.py +0 -0
  464. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_stages.py +0 -0
  465. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_authorities.py +0 -0
  466. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_authorities_types.py +0 -0
  467. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_codes.py +0 -0
  468. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_invoices.py +0 -0
  469. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sbo_bob_service.py +0 -0
  470. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sections.py +0 -0
  471. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sections_service.py +0 -0
  472. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_credit_memo_service.py +0 -0
  473. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_credit_memos.py +0 -0
  474. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_invoice_service.py +0 -0
  475. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_invoices.py +0 -0
  476. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/serial_number_details.py +0 -0
  477. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/series_service.py +0 -0
  478. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_origins.py +0 -0
  479. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_origins_service.py +0 -0
  480. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_sub_types.py +0 -0
  481. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_sub_types_service.py +0 -0
  482. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_types.py +0 -0
  483. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_types_service.py +0 -0
  484. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_solution_status.py +0 -0
  485. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_solution_status_service.py +0 -0
  486. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_status.py +0 -0
  487. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_status_service.py +0 -0
  488. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_types.py +0 -0
  489. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_types_service.py +0 -0
  490. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_calls.py +0 -0
  491. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_contracts.py +0 -0
  492. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_groups.py +0 -0
  493. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_groups_service.py +0 -0
  494. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_tax_posting_service.py +0 -0
  495. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/shipping_types.py +0 -0
  496. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/short_link_mappings_service.py +0 -0
  497. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/special_prices.py +0 -0
  498. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/states.py +0 -0
  499. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/states_service.py +0 -0
  500. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_takings.py +0 -0
  501. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_draft_service.py +0 -0
  502. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_drafts.py +0 -0
  503. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_service.py +0 -0
  504. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfers.py +0 -0
  505. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/target_groups.py +0 -0
  506. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/target_groups_service.py +0 -0
  507. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations.py +0 -0
  508. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_service.py +0 -0
  509. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_tcd.py +0 -0
  510. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_tcd_service.py +0 -0
  511. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_invoice_report.py +0 -0
  512. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_web_sites.py +0 -0
  513. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_web_sites_service.py +0 -0
  514. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/teams.py +0 -0
  515. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/termination_reason.py +0 -0
  516. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/termination_reason_service.py +0 -0
  517. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/territories.py +0 -0
  518. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tracking_notes.py +0 -0
  519. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tracking_notes_service.py +0 -0
  520. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transaction_codes.py +0 -0
  521. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transaction_codes_service.py +0 -0
  522. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transportation_document.py +0 -0
  523. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tsr_exceptional_event_service.py +0 -0
  524. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tsr_exceptional_events.py +0 -0
  525. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurement_groups.py +0 -0
  526. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurement_groups_service.py +0 -0
  527. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurements.py +0 -0
  528. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurements_service.py +0 -0
  529. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_default_groups.py +0 -0
  530. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_fields_md.py +0 -0
  531. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_keys_md.py +0 -0
  532. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_languages.py +0 -0
  533. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_menu_service.py +0 -0
  534. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_objects_md.py +0 -0
  535. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_permission_tree.py +0 -0
  536. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_queries.py +0 -0
  537. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_tables_md.py +0 -0
  538. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/users.py +0 -0
  539. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/users_service.py +0 -0
  540. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping.py +0 -0
  541. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping_communication.py +0 -0
  542. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping_service.py +0 -0
  543. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/vat_groups.py +0 -0
  544. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/vendor_payments.py +0 -0
  545. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/w_tax_type_code_service.py +0 -0
  546. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/w_tax_type_codes.py +0 -0
  547. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_locations.py +0 -0
  548. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_sublevel_codes.py +0 -0
  549. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_sublevel_codes_service.py +0 -0
  550. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouses.py +0 -0
  551. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_bookmark_tile_service.py +0 -0
  552. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_bookmark_tiles.py +0 -0
  553. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_dashboard_service.py +0 -0
  554. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_dashboards.py +0 -0
  555. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_form_setting_service.py +0 -0
  556. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_form_settings.py +0 -0
  557. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_launchpad_service.py +0 -0
  558. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_launchpads.py +0 -0
  559. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_listview_filter_service.py +0 -0
  560. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_listview_filters.py +0 -0
  561. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_notification_service.py +0 -0
  562. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_notifications.py +0 -0
  563. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_preference_service.py +0 -0
  564. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_preferences.py +0 -0
  565. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_recent_activities.py +0 -0
  566. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_recent_activity_service.py +0 -0
  567. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_group_service.py +0 -0
  568. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_groups.py +0 -0
  569. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_service.py +0 -0
  570. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variants.py +0 -0
  571. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/weight_measures.py +0 -0
  572. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/withholding_tax_codes.py +0 -0
  573. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/witholding_tax_definition.py +0 -0
  574. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/wizard_payment_methods.py +0 -0
  575. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/workflow_task_service.py +0 -0
  576. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/async_base.py +0 -0
  577. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/udo.py +0 -0
  578. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/testing.py +0 -0
  579. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/__init__.py +0 -0
  580. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_01_settings.py +0 -0
  581. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_02_rest_adapter.py +0 -0
  582. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_03_items_endpoint.py +0 -0
  583. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_04_serialnumberdetails_endpoint.py +0 -0
  584. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_observability.py +0 -0
  585. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_utils.py +0 -0
  586. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/__init__.py +0 -0
  587. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/__init__.py +0 -0
  588. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/base.py +0 -0
  589. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/odata_decode_middleware.py +0 -0
  590. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/odata_transform_url_middleware.py +0 -0
  591. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/py.typed +0 -0
  592. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/__init__.py +0 -0
  593. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/adapter.py +0 -0
  594. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/client.py +0 -0
  595. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/config.py +0 -0
  596. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/endpoints/serialnumberdetailodbc.py +0 -0
  597. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/exceptions/exceptions.py +0 -0
  598. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/main.py +0 -0
  599. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/models/result.py +0 -0
  600. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/models/serial.py +0 -0
  601. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/odbc_adapter.py +0 -0
  602. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/__init__.py +0 -0
  603. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_01_settings.py +0 -0
  604. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_02_odbc_adapter.py +0 -0
  605. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_04_serialnumberdetails_endpoint.py +0 -0
  606. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/__init__.py +0 -0
  607. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fakes/__init__.py +0 -0
  608. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fakes/fake_rest_adapter.py +0 -0
  609. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/__init__.py +0 -0
  610. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/mock_responses/items_list.json +0 -0
  611. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/mock_responses/items_single.json +0 -0
  612. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/test_data.py +0 -0
  613. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/__init__.py +0 -0
  614. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/cassettes/test_items_real/test_get_item_real.yaml +0 -0
  615. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/cassettes/test_items_real/test_list_items_real.yaml +0 -0
  616. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/test_items_real.py +0 -0
  617. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_middleware.py +0 -0
  618. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_saphdb_adapter.py +0 -0
  619. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/__init__.py +0 -0
  620. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/mocks/items_list.json +0 -0
  621. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/mocks/items_single.json +0 -0
  622. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_items_mock.py +0 -0
  623. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_rest_adapter.py +0 -0
  624. {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_service_calls.py +0 -0
@@ -27,3 +27,7 @@ SAP_B1_INTEGRATION=0
27
27
  # B1SL_ETAG_CACHE_SIZE=256
28
28
  # B1SL_CONNECT_TIMEOUT=10
29
29
  # B1SL_READ_TIMEOUT=60
30
+
31
+ # --- Safety & Debugging ---
32
+ # Set to 1 to intercept all write requests (POST, PATCH, DELETE) without hitting SAP.
33
+ B1SL_DRY_RUN=0
@@ -0,0 +1,37 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ env:
10
+ PYTHON_VERSION: ${{ vars.PYTHON_VERSION || '3.12' }}
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ test:
17
+ name: Lint & Test 🧪
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v3
24
+ with:
25
+ enable-cache: true
26
+
27
+ - name: Set up Python
28
+ run: uv python install ${{ env.PYTHON_VERSION }}
29
+
30
+ - name: Install dependencies
31
+ run: uv sync --all-extras --dev
32
+
33
+ - name: Run linting (Ruff)
34
+ run: uv run ruff check .
35
+
36
+ - name: Run unit tests (Pytest)
37
+ run: uv run pytest tests/unit/
@@ -0,0 +1,49 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ env:
9
+ PYTHON_VERSION: ${{ vars.PYTHON_VERSION || '3.12' }}
10
+
11
+ jobs:
12
+ test:
13
+ name: Run Unit Tests 🧪
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Install uv
18
+ uses: astral-sh/setup-uv@v3
19
+ with:
20
+ enable-cache: true
21
+ - name: Set up Python
22
+ run: uv python install ${{ env.PYTHON_VERSION }}
23
+ - name: Install dependencies
24
+ run: uv sync --all-extras --dev
25
+ - name: Run unit tests
26
+ run: uv run pytest tests/unit/
27
+
28
+ build-n-publish:
29
+ name: Build & publish 📦
30
+ needs: test
31
+ runs-on: ubuntu-latest
32
+ environment: pypi
33
+ permissions:
34
+ id-token: write # Required for Trusted Publishing if used
35
+ contents: read
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - name: Install uv
39
+ uses: astral-sh/setup-uv@v3
40
+ with:
41
+ enable-cache: true
42
+ - name: Set up Python
43
+ run: uv python install ${{ env.PYTHON_VERSION }}
44
+ - name: Build distribution
45
+ run: uv build
46
+ - name: Publish package to PyPI 🐍
47
+ env:
48
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
49
+ run: uv publish
@@ -52,6 +52,21 @@ lint:
52
52
  $(VENV)/bin/ruff check src tests
53
53
  $(VENV)/bin/mypy src
54
54
 
55
+ # Release automation (Pro mode)
56
+ # Usage: make release v=0.1.x
57
+ release: lint test
58
+ @if [ -z "$(v)" ]; then \
59
+ echo "❌ Error: Version required. Example: make release v=0.1.2"; \
60
+ exit 1; \
61
+ fi
62
+ @echo "🚀 Preparing release v$(v)..."
63
+ git add .
64
+ git commit -m "chore: Release v$(v) - Automated build"
65
+ git tag -a v$(v) -m "v$(v)"
66
+ @echo "📤 Pushing to GitHub (Branch main + Tags)..."
67
+ git push origin main --tags
68
+ @echo "✅ Done! GitHub Actions will handle the PyPI publication."
69
+
55
70
  clean:
56
71
  @echo "🧹 Cleaning temporary files..."
57
72
  rm -rf .pytest_cache .mypy_cache .coverage htmlcov .ruff_cache coverage.xml
@@ -1,7 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: b1sl-python
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: A framework-agnostic Python SDK for SAP Business One Service Layer and SAP HANA. (Unofficial)
5
+ Project-URL: Homepage, https://github.com/operator-ita/b1sl-python
6
+ Project-URL: Repository, https://github.com/operator-ita/b1sl-python
7
+ Project-URL: Bug Tracker, https://github.com/operator-ita/b1sl-python/issues
8
+ Project-URL: Documentation, https://github.com/operator-ita/b1sl-python/tree/main/docs
5
9
  Author: Eliceo Guzman
6
10
  License: MIT
7
11
  License-File: LICENSE
@@ -17,7 +21,10 @@ Requires-Dist: httpx<1,>=0.28.1
17
21
  Requires-Dist: pydantic<3,>=2.0.0
18
22
  Requires-Dist: python-dotenv>=1.2.2
19
23
  Provides-Extra: all
20
- Requires-Dist: b1sl[django,generator,hana]; extra == 'all'
24
+ Requires-Dist: beautifulsoup4>=4.14.3; extra == 'all'
25
+ Requires-Dist: django<6,>=4.2; extra == 'all'
26
+ Requires-Dist: hdbcli<3,>=2.20.0; extra == 'all'
27
+ Requires-Dist: lxml>=6.0.2; extra == 'all'
21
28
  Provides-Extra: dev
22
29
  Requires-Dist: mypy; extra == 'dev'
23
30
  Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
@@ -38,10 +45,10 @@ Provides-Extra: hana
38
45
  Requires-Dist: hdbcli<3,>=2.20.0; extra == 'hana'
39
46
  Description-Content-Type: text/markdown
40
47
 
41
- # b1sl
48
+ # b1sl-python
42
49
  ### Modern, async-first Python SDK for SAP Business One Service Layer.
43
50
 
44
- ![b1sl Banner](docs/assets/hero_banner.png)
51
+ ![b1sl Banner](https://raw.githubusercontent.com/operator-ita/b1sl-python/refs/heads/main/docs/assets/hero_banner.png)
45
52
 
46
53
  [![Python Version](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
47
54
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
@@ -59,7 +66,9 @@ b1sl is a high-performance SDK designed for the SAP B1 Service Layer, focusing o
59
66
  * **Smart Session Management**: Automatic 401 re-authentication with internal locking to prevent license exhaustion.
60
67
  * **Session Hydration**: Reuse existing `B1SESSION` IDs across serverless functions or Temporal activities.
61
68
  * **Optimistic Concurrency**: Automated ETag handling with smart cache invalidation on 412 conflicts.
69
+ * **Pythonic Querying**: Fluent OData builder with operator overloading and type-safe fields.
62
70
  * **Observability**: Structured logging and event hooks for performance monitoring.
71
+ * **Safe Development**: Global and per-request **Dry Run** mode to intercept writing requests.
63
72
 
64
73
  ---
65
74
 
@@ -67,10 +76,10 @@ b1sl is a high-performance SDK designed for the SAP B1 Service Layer, focusing o
67
76
 
68
77
  ```bash
69
78
  # Using pip
70
- pip install b1sl
79
+ pip install b1sl-python
71
80
 
72
81
  # Using uv
73
- uv add b1sl
82
+ uv add b1sl-python
74
83
  ```
75
84
 
76
85
  ---
@@ -86,8 +95,13 @@ async def main():
86
95
 
87
96
  async with AsyncB1Client(config) as b1:
88
97
  # Full type hints for items and major entities
89
- item = await b1.items.get("C1000")
90
- print(f"Item: {item.ItemName}")
98
+ item = await b1.items.get("I1000")
99
+
100
+ # 1. Native Pythonic access (snake_case)
101
+ print(f"Item: {item.item_name}")
102
+
103
+ # 2. Dynamic access by SAP Alias (perfect for UDFs!)
104
+ print(f"Stock: {item.get('QuantityOnStock')}")
91
105
 
92
106
  if __name__ == "__main__":
93
107
  asyncio.run(main())
@@ -95,6 +109,28 @@ if __name__ == "__main__":
95
109
 
96
110
  ---
97
111
 
112
+ ## Pythonic Querying
113
+
114
+ Experience the best way to interact with SAP Service Layer. No more string concatenation!
115
+
116
+ ```python
117
+ from b1sl.b1sl.fields import Item
118
+ from datetime import date
119
+
120
+ # Fluent queries are type-safe, readable, and support IDE autocomplete
121
+ items = await b1.items.filter(
122
+ (Item.quantity_on_stock > 0) & (Item.valid_from >= date(2024, 1, 1))
123
+ ).select(
124
+ Item.item_code,
125
+ Item.item_name
126
+ ).top(5).execute()
127
+
128
+ for item in items:
129
+ print(f"[{item.item_code}] {item.item_name}")
130
+ ```
131
+
132
+ ---
133
+
98
134
  ## Advanced Usage: FastAPI Integration
99
135
 
100
136
  b1sl is optimized for modern web frameworks. We recommend using the Lifespan pattern to share a single connection pool:
@@ -154,7 +190,7 @@ This SDK is optimized for modern Service Layer environments and defaults to **v2
154
190
  * **Minimum for ETags**: Requires Service Layer **1.21+** (March 2021).
155
191
  * **Backward Compatibility**: Supports **v1 (OData V2)** through client configuration.
156
192
 
157
- For a detailed history of Service Layer features and specific version support, see the [Full Compatibility Timeline](docs/01-compatibility.md).
193
+ For a detailed history of Service Layer features and specific version support, see the [Full Compatibility Timeline](https://github.com/operator-ita/b1sl-python/blob/main/docs/02-compatibility.md).
158
194
 
159
195
  ---
160
196
 
@@ -1,7 +1,7 @@
1
- # b1sl
1
+ # b1sl-python
2
2
  ### Modern, async-first Python SDK for SAP Business One Service Layer.
3
3
 
4
- ![b1sl Banner](docs/assets/hero_banner.png)
4
+ ![b1sl Banner](https://raw.githubusercontent.com/operator-ita/b1sl-python/refs/heads/main/docs/assets/hero_banner.png)
5
5
 
6
6
  [![Python Version](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
7
7
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
@@ -19,7 +19,9 @@ b1sl is a high-performance SDK designed for the SAP B1 Service Layer, focusing o
19
19
  * **Smart Session Management**: Automatic 401 re-authentication with internal locking to prevent license exhaustion.
20
20
  * **Session Hydration**: Reuse existing `B1SESSION` IDs across serverless functions or Temporal activities.
21
21
  * **Optimistic Concurrency**: Automated ETag handling with smart cache invalidation on 412 conflicts.
22
+ * **Pythonic Querying**: Fluent OData builder with operator overloading and type-safe fields.
22
23
  * **Observability**: Structured logging and event hooks for performance monitoring.
24
+ * **Safe Development**: Global and per-request **Dry Run** mode to intercept writing requests.
23
25
 
24
26
  ---
25
27
 
@@ -27,10 +29,10 @@ b1sl is a high-performance SDK designed for the SAP B1 Service Layer, focusing o
27
29
 
28
30
  ```bash
29
31
  # Using pip
30
- pip install b1sl
32
+ pip install b1sl-python
31
33
 
32
34
  # Using uv
33
- uv add b1sl
35
+ uv add b1sl-python
34
36
  ```
35
37
 
36
38
  ---
@@ -46,8 +48,13 @@ async def main():
46
48
 
47
49
  async with AsyncB1Client(config) as b1:
48
50
  # Full type hints for items and major entities
49
- item = await b1.items.get("C1000")
50
- print(f"Item: {item.ItemName}")
51
+ item = await b1.items.get("I1000")
52
+
53
+ # 1. Native Pythonic access (snake_case)
54
+ print(f"Item: {item.item_name}")
55
+
56
+ # 2. Dynamic access by SAP Alias (perfect for UDFs!)
57
+ print(f"Stock: {item.get('QuantityOnStock')}")
51
58
 
52
59
  if __name__ == "__main__":
53
60
  asyncio.run(main())
@@ -55,6 +62,28 @@ if __name__ == "__main__":
55
62
 
56
63
  ---
57
64
 
65
+ ## Pythonic Querying
66
+
67
+ Experience the best way to interact with SAP Service Layer. No more string concatenation!
68
+
69
+ ```python
70
+ from b1sl.b1sl.fields import Item
71
+ from datetime import date
72
+
73
+ # Fluent queries are type-safe, readable, and support IDE autocomplete
74
+ items = await b1.items.filter(
75
+ (Item.quantity_on_stock > 0) & (Item.valid_from >= date(2024, 1, 1))
76
+ ).select(
77
+ Item.item_code,
78
+ Item.item_name
79
+ ).top(5).execute()
80
+
81
+ for item in items:
82
+ print(f"[{item.item_code}] {item.item_name}")
83
+ ```
84
+
85
+ ---
86
+
58
87
  ## Advanced Usage: FastAPI Integration
59
88
 
60
89
  b1sl is optimized for modern web frameworks. We recommend using the Lifespan pattern to share a single connection pool:
@@ -114,7 +143,7 @@ This SDK is optimized for modern Service Layer environments and defaults to **v2
114
143
  * **Minimum for ETags**: Requires Service Layer **1.21+** (March 2021).
115
144
  * **Backward Compatibility**: Supports **v1 (OData V2)** through client configuration.
116
145
 
117
- For a detailed history of Service Layer features and specific version support, see the [Full Compatibility Timeline](docs/01-compatibility.md).
146
+ For a detailed history of Service Layer features and specific version support, see the [Full Compatibility Timeline](https://github.com/operator-ita/b1sl-python/blob/main/docs/02-compatibility.md).
118
147
 
119
148
  ---
120
149
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "b1sl-python"
7
- version = "0.1.0"
7
+ version = "0.1.2"
8
8
  description = "A framework-agnostic Python SDK for SAP Business One Service Layer and SAP HANA. (Unofficial)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.13"
@@ -30,6 +30,12 @@ dependencies = [
30
30
  "python-dotenv>=1.2.2",
31
31
  ]
32
32
 
33
+ [project.urls]
34
+ Homepage = "https://github.com/operator-ita/b1sl-python"
35
+ Repository = "https://github.com/operator-ita/b1sl-python"
36
+ "Bug Tracker" = "https://github.com/operator-ita/b1sl-python/issues"
37
+ Documentation = "https://github.com/operator-ita/b1sl-python/tree/main/docs"
38
+
33
39
  [project.optional-dependencies]
34
40
  hana = ["hdbcli>=2.20.0,<3"]
35
41
  django = ["django>=4.2,<6"]
@@ -51,7 +57,7 @@ dev = [
51
57
  "pytest-cov",
52
58
  ]
53
59
 
54
- all = ["b1sl[hana,django,generator]"]
60
+ all = ["b1sl-python[hana,django,generator]"]
55
61
 
56
62
  [tool.hatch.build.targets.wheel]
57
63
  packages = ["src/b1sl"]
@@ -60,6 +66,8 @@ exclude = [
60
66
  "/metadata",
61
67
  "/examples",
62
68
  "/docs",
69
+ "/skills",
70
+ "agents.md",
63
71
  ]
64
72
 
65
73
  [tool.hatch.build.targets.sdist]
@@ -69,6 +77,8 @@ exclude = [
69
77
  "/examples",
70
78
  "/docs",
71
79
  "/.env",
80
+ "/skills",
81
+ "agents.md",
72
82
  ]
73
83
 
74
84
  [tool.pytest.ini_options]
@@ -82,24 +92,33 @@ addopts = "--tb=short --cov=src --cov-report=term-missing"
82
92
 
83
93
  [tool.mypy]
84
94
  files = ["src"]
85
- strict = true
95
+ strict = false
86
96
  ignore_missing_imports = true
97
+ exclude = ["_generated"]
98
+ check_untyped_defs = true
99
+ warn_unreachable = true
100
+ disable_error_code = ["attr-defined", "misc", "override", "assignment", "call-arg", "valid-type", "type-var", "unreachable", "call-overload", "arg-type", "union-attr"]
87
101
 
88
102
  [tool.ruff]
89
103
  line-length = 88
90
104
  target-version = "py311"
105
+ extend-exclude = [
106
+ "src/b1sl/b1sl/models/_generated",
107
+ "src/b1sl/b1sl/resources/_generated",
108
+ ]
91
109
 
92
110
  [tool.ruff.lint]
93
111
  select = ["E", "F", "W", "I"]
94
- ignore = ["E501"]
112
+ ignore = ["E501", "W291", "W293"]
95
113
 
96
114
  [tool.ruff.format]
97
115
  quote-style = "double"
98
116
  indent-style = "space"
99
117
 
100
118
  [tool.ruff.lint.extend-per-file-ignores]
101
- "src/b1sl/b1sl/models/_generated/**" = ["F401", "F841"]
102
- "src/b1sl/b1sl/resources/_generated/**" = ["F401", "F841"]
119
+ "src/b1sl/b1sl/entities/__init__.py" = ["F401", "F403", "F405"]
120
+ "examples/**" = ["E402", "F841"]
121
+ "scripts/**" = ["E701", "F401"]
103
122
 
104
123
  [tool.pyright]
105
124
  include = ["src", "scripts"]
@@ -0,0 +1,56 @@
1
+ from enum import StrEnum
2
+ import json
3
+
4
+ # Current implementation pattern
5
+ class OldField(StrEnum):
6
+ ITEM_CODE = "ItemCode"
7
+
8
+ # Proposed implementation pattern
9
+ class ODataExpression(str):
10
+ def __and__(self, other):
11
+ return ODataExpression(f"({self} and {other})")
12
+
13
+ def __or__(self, other):
14
+ return ODataExpression(f"({self} or {other})")
15
+
16
+ class ODataField(str):
17
+ def __eq__(self, other):
18
+ val = f"'{other}'" if isinstance(other, str) else str(other)
19
+ return ODataExpression(f"{self} eq {val}")
20
+
21
+ class NewFields:
22
+ ITEM_CODE = ODataField("ItemCode")
23
+
24
+ def test_investigation():
25
+ print("--- 1. String Interoperability (F-Strings) ---")
26
+ print(f"Old: {OldField.ITEM_CODE}")
27
+ print(f"New: {NewFields.ITEM_CODE}")
28
+ assert str(OldField.ITEM_CODE) == str(NewFields.ITEM_CODE)
29
+
30
+ print("\n--- 2. JSON Serialization ---")
31
+ print(f"Old: {json.dumps(OldField.ITEM_CODE)}")
32
+ print(f"New: {json.dumps(NewFields.ITEM_CODE)}")
33
+ assert json.dumps(OldField.ITEM_CODE) == json.dumps(NewFields.ITEM_CODE)
34
+
35
+ print("\n--- 3. Equality Overloading ---")
36
+ old_eq = (OldField.ITEM_CODE == "ItemCode")
37
+ new_eq = (NewFields.ITEM_CODE == "A001")
38
+ print(f"Old eq 'ItemCode': {old_eq} (type: {type(old_eq)})")
39
+ print(f"New eq 'A001': {new_eq} (type: {type(new_eq)})")
40
+
41
+ print("\n--- 4. Logic Composition ---")
42
+ try:
43
+ composed = (NewFields.ITEM_CODE == "A001") & (ODataField("Valid") == "tYES")
44
+ print(f"Composed Filter: {composed}")
45
+ assert composed == "(ItemCode eq 'A001' and Valid eq 'tYES')"
46
+ except Exception as e:
47
+ print(f"Failed to compose: {e}")
48
+
49
+ print("\n--- 5. Membership / Iteration ---")
50
+ # StrEnum is iterable
51
+ print(f"Old is iterable: {hasattr(OldField, '__iter__')}")
52
+ # Custom class needs implementation
53
+ print(f"New is iterable: {hasattr(NewFields, '__iter__')}")
54
+
55
+ if __name__ == "__main__":
56
+ test_investigation()
@@ -5,16 +5,6 @@ b1sl.b1sl — SDK for SAP B1 Service Layer (OData).
5
5
  import logging
6
6
  import warnings
7
7
 
8
- try:
9
- from pydantic import ArbitraryTypeWarning
10
-
11
- warnings.filterwarnings("ignore", category=ArbitraryTypeWarning, module=r"b1sl\..*")
12
- except ImportError:
13
- warnings.filterwarnings("ignore", module=r"b1sl\..*|pydantic\..*")
14
-
15
- # Standard library pattern: prevent "No handlers could be found"
16
- logging.getLogger("b1sl").addHandler(logging.NullHandler())
17
-
18
8
  from b1sl.b1sl.async_client import AsyncB1Client
19
9
  from b1sl.b1sl.async_rest_adapter import AsyncRestAdapter
20
10
  from b1sl.b1sl.base_adapter import HookContext, ObservabilityConfig
@@ -28,29 +18,39 @@ from b1sl.b1sl.resources.base import GenericResource, ODataQuery
28
18
  from b1sl.b1sl.rest_adapter import RestAdapter
29
19
 
30
20
  try:
31
- from b1sl.b1sl import entities
21
+ from pydantic import ArbitraryTypeWarning
22
+
23
+ warnings.filterwarnings("ignore", category=ArbitraryTypeWarning, module=r"b1sl\..*") # type: ignore
24
+ except ImportError:
25
+ warnings.filterwarnings("ignore", module=r"b1sl\..*|pydantic\..*")
26
+
27
+ # Standard library pattern: prevent "No handlers could be found"
28
+ logging.getLogger("b1sl").addHandler(logging.NullHandler())
29
+
30
+ try:
31
+ from b1sl.b1sl import entities # type: ignore
32
32
  except ImportError:
33
- entities = None # Before code generation
33
+ entities = None # type: ignore # Before code generation
34
34
 
35
35
  try:
36
- from b1sl.b1sl import fields
36
+ from b1sl.b1sl import fields # type: ignore
37
37
  except ImportError:
38
- fields = None
38
+ fields = None # type: ignore
39
39
 
40
40
  __all__ = [
41
- "B1Client",
42
41
  "AsyncB1Client",
42
+ "B1Client",
43
43
  "B1Config",
44
- "B1Env",
45
44
  "B1Environment",
46
- "RestAdapter",
47
45
  "AsyncRestAdapter",
48
- "GenericResource",
46
+ "RestAdapter",
47
+ "B1Env",
48
+ "SAPConcurrencyError",
49
49
  "AsyncGenericResource",
50
+ "GenericResource",
51
+ "ODataQuery",
50
52
  "entities",
51
53
  "fields",
52
- "ODataQuery",
53
54
  "HookContext",
54
55
  "ObservabilityConfig",
55
- "SAPConcurrencyError",
56
56
  ]
@@ -8,17 +8,20 @@ from b1sl.b1sl.base_adapter import ObservabilityConfig
8
8
  from b1sl.b1sl.config import B1Config
9
9
 
10
10
  if TYPE_CHECKING:
11
- from b1sl.b1sl.models.base import B1Model
12
- from b1sl.b1sl.resources.async_base import AsyncGenericResource
13
- from b1sl.b1sl.resources.udo import AsyncUDOResource
14
-
11
+ from b1sl.b1sl.models._generated.entities.businesspartners import (
12
+ Activity,
13
+ BusinessPartner,
14
+ )
15
+ from b1sl.b1sl.models._generated.entities.finance import JournalEntry
16
+ from b1sl.b1sl.models._generated.entities.general import Document, Payment, User
17
+
15
18
  # Models for typing convenience aliases
16
19
  from b1sl.b1sl.models._generated.entities.inventory import Item
17
- from b1sl.b1sl.models._generated.entities.businesspartners import BusinessPartner, Activity
18
- from b1sl.b1sl.models._generated.entities.general import Document, Payment, User
19
20
  from b1sl.b1sl.models._generated.entities.production import ProductionOrder
20
- from b1sl.b1sl.models._generated.entities.finance import JournalEntry
21
21
  from b1sl.b1sl.models._generated.entities.sales import ServiceCall
22
+ from b1sl.b1sl.models.base import B1Model
23
+ from b1sl.b1sl.resources.async_base import AsyncGenericResource
24
+ from b1sl.b1sl.resources.udo import AsyncUDOResource
22
25
 
23
26
 
24
27
  class AsyncB1Client:
@@ -75,6 +78,28 @@ class AsyncB1Client:
75
78
  """
76
79
  return self._adapter.session_id
77
80
 
81
+ def dry_run(self, enabled: bool = True):
82
+ """
83
+ Context manager to temporarily enable or disable Dry Run mode
84
+ **for the current asyncio task only** (task-safe via ContextVar).
85
+
86
+ Usage::
87
+
88
+ async with AsyncB1Client(config) as b1:
89
+ # Intercept writes for just this block
90
+ with b1.dry_run():
91
+ await b1.items.create(new_item) # intercepted
92
+
93
+ # Force real execution even if global dry_run is True
94
+ with b1.dry_run(enabled=False):
95
+ await b1.items.update(item) # sent to SAP
96
+
97
+ Note:
98
+ Use ``with`` (sync CM), **not** ``async with``, even in async code.
99
+ This is correct Python — the CM guards a state variable, not I/O.
100
+ """
101
+ return self._adapter.dry_run(enabled)
102
+
78
103
  async def connect(self) -> None:
79
104
  """
80
105
  Initializes the underlying HTTP client and logs in.