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.
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/.env.example +4 -0
- b1sl_python-0.1.2/.github/workflows/ci.yml +37 -0
- b1sl_python-0.1.2/.github/workflows/publish.yml +49 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/Makefile +15 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/PKG-INFO +45 -9
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/README.md +36 -7
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/pyproject.toml +25 -6
- b1sl_python-0.1.2/scratch/investigate_enum.py +56 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/__init__.py +20 -20
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/async_client.py +32 -7
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/async_rest_adapter.py +26 -18
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/base_adapter.py +43 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/client.py +22 -1
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/config.py +4 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/config_manager.py +1 -1
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/entities/__init__.py +292 -282
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/__init__.py +1361 -537
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/complex_types.py +6928 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/businesspartners.py +546 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/finance.py +453 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/general.py +4589 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/inventory.py +763 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/production.py +258 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/purchasing.py +55 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/_generated/entities/sales.py +246 -0
- b1sl_python-0.1.2/src/b1sl/b1sl/fields/base.py +24 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/inventory.py +1 -1
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/base.py +1 -2
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/base.py +34 -1
- b1sl_python-0.1.2/src/b1sl/b1sl/resources/odata.py +165 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/rest_adapter.py +11 -11
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/conftest.py +3 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/conftest.py +1 -3
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_async_adapter.py +4 -4
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_b1sl_adapter.py +14 -15
- b1sl_python-0.1.2/tests/unit/test_dry_run.py +233 -0
- b1sl_python-0.1.2/tests/unit/test_odata_builder.py +87 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/uv.lock +3 -3
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/complex_types.py +0 -6926
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/businesspartners.py +0 -544
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/finance.py +0 -451
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/general.py +0 -4587
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/inventory.py +0 -761
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/production.py +0 -256
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/purchasing.py +0 -53
- b1sl_python-0.1.0/src/b1sl/b1sl/fields/_generated/entities/sales.py +0 -244
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/.gitignore +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/LICENSE +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/ROADMAP.md +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/configs/dev.json +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/configs/qa.json.example +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/adapter_protocol.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/base.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/odata_decode_middleware.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/contrib/django/middleware/odata_transform_url_middleware.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/environment.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/exceptions/exceptions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/_generated/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/fields/_generated/entities/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/logging_utils.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/complex_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/businesspartners.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/finance.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/general.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/production.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/purchasing.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/entities/sales.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/enums.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_generated/resources/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/_overrides/inventory.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/odata_query_model.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/paginated_result.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/models/result.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_category.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_category_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_segmentation_categories.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/account_segmentations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accounts_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accrual_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/accrual_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activities_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_locations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_recipient_lists.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_recipient_lists_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_statuses.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/activity_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/additional_expenses.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/address_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alert_managements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alternate_cat_num.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/alternative_items_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_requests.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_requests_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_stages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_stages_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_templates.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/approval_templates_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_credit_memo.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_credit_memo_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_capitalization_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_classes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_classes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_depreciation_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_depreciation_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_manual_depreciation.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_manual_depreciation_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_retirement.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_retirement_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_transfer.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/asset_transfer_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attachments2.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attribute_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/attribute_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_charges_allocation_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_charges_allocation_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_pages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_statements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bank_statements_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/banks.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bar_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bar_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/batch_number_details.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bill_of_exchange_transactions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_attributes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_attributes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_fields.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_location_fields_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_locations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bin_locations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/blanket_agreements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/blanket_agreements_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_document_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_document_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_instructions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_instructions_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_lines_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_portfolios.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/boe_portfolios_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_fiscal_registry_id.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_opening_balance_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/bp_priorities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/branches.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/branches_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_beverage_indexers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_beverage_indexers_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_fuel_indexers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_fuel_indexers_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_multi_indexers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_numeric_indexers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/brazil_string_indexers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budget_distributions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budget_scenarios.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/budgets.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_properties.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partner_properties_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partners.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_partners_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/business_places.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaign_response_type.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaign_response_type_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaigns.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/campaigns_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_discounts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_discounts_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_flow_line_items.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cash_flow_line_items_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/certificate_series.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/certificate_series_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/change_logs_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/chart_of_accounts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/check_lines_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/checksfor_payment.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/choose_from_list.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/client_mixin.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/closing_date_procedure.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cockpits.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cockpits_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/commission_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/company_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/contacts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/contract_templates.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_reversal.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_reversal_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_invoice_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_reversal.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_reversal_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/correction_purchase_invoice_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_center_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_center_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_element_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cost_elements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/counties.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/counties_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/countries.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/countries_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_card_payments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_cards.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_lines_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_notes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_notes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/credit_payment_methods.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/currencies.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customer_equipment_cards.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customs_declaration.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/customs_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cycle_count_determinations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/cycle_count_determinations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dashboard_packages_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deductible_tax_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deductible_taxes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_hierarchies.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_sub_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deduction_tax_sub_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/delivery_notes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/delivery_notes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/departments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/departments_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deposits.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/deposits_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_areas.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_areas_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_type_pools.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_type_pools_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/depreciation_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/determination_criterias.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/determination_criterias_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dimensions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dimensions_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/distribution_rules.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/distribution_rules_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dnf_code_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dnf_code_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/down_payments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/down_payments_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/drafts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/drafts_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_letters.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_terms.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dunning_terms_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/dynamic_system_strings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_communication_action_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_communication_actions_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_file_formats.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/electronic_file_formats_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/email_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/email_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_id_type.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_id_type_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_position.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_position_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_roles_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_roles_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_status.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_status_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_transfers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employee_transfers_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employees_info.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employment_category_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/employment_categorys.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/enhanced_discount_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/enhanced_discount_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/exceptional_event_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/exceptional_events.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/extended_translations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/extended_translations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/external_calls_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/external_reconciliations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fa_account_determinations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fa_account_determinations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/factoring_indicators.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/financial_years.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/financial_years_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fiscal_printer.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fiscal_printer_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/fixed_asset_items_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/form_preferences.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/formatted_searches.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/forms1099.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gl_account_advanced_rules.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gl_account_advanced_rules_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/goods_return_request.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/goods_return_request_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gov_pay_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gov_pay_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/gt_is_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/holidays.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/house_bank_accounts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/incoming_payments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/india_hsn.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/india_hsn_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/industries.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/integration_packages_configure.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/integration_packages_configure_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/internal_reconciliations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/internal_reconciliations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/intrastat_configuration.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/intrastat_configuration_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_countings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_countings_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_cycles.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_entries.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_entry_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_exit_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_gen_exits.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_opening_balances.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_opening_balances_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_postings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_postings_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_transfer_requests.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/inventory_transfer_requests_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/invoices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/invoices_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/item_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/item_properties.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/items.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entries.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entry_document_type_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_entry_document_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/journal_vouchers_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/knowledge_base_solutions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/kp_is.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/kp_is_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/landed_costs_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/legal_data.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/length_measures.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/license_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/local_era.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/manufacturers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation_fifo_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/material_revaluation_snb_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/messages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/messages_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_add_on_setting.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_add_on_setting_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/mobile_app_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/multi_language_translations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nature_of_assessees.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nature_of_assessees_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/ncm_codes_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/ncm_codes_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_models.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_models_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_tax_categories.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nf_tax_categories_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_cfop.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_cst.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/nota_fiscal_usage.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/occurrence_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/occurrence_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/orders.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/orders_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/packages_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/partners_setups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/partners_setups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_blocks.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_blocks_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_calculation_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_drafts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_reason_code_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_reason_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_run_export.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_terms_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/payment_terms_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pick_lists.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pick_lists_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/pos_daily_summary.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/predefined_texts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/predefined_texts_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/price_lists.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/product_trees.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/production_orders.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/profit_centers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/profit_centers_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_configuration_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_management_time_sheet.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/project_managements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/projects.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/projects_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_credit_notes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_credit_notes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_delivery_notes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_delivery_notes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_down_payments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_down_payments_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_invoices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_invoices_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_orders.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_orders_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_quotations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_quotations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_request_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_requests.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_returns.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_returns_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/purchase_tax_invoices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/qr_code_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_auth_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_categories.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/query_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/queue.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/quotations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/quotations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/recurring_transaction_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/relationships.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_filter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_filter_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_layouts_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/report_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_capacities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_capacities_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_properties.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resource_properties_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resources.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/resources_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/retorno_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/retorno_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/return_request.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/return_request_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/returns.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/returns_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/route_stages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/route_stages_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_forecast.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_competitors_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_competitors_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_interests_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_interests_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_reasons_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_reasons_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_sources_setup.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_opportunity_sources_setup_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_persons.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_stages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_authorities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_authorities_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sales_tax_invoices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sbo_bob_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sections.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/sections_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_credit_memo_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_credit_memos.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_invoice_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/self_invoices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/serial_number_details.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/series_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_origins.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_origins_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_sub_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_sub_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_problem_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_solution_status.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_solution_status_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_status.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_status_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_call_types_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_calls.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_contracts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/service_tax_posting_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/shipping_types.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/short_link_mappings_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/special_prices.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/states.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/states_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_takings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_draft_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_drafts.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfer_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/stock_transfers.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/target_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/target_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_tcd.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_code_determinations_tcd_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_invoice_report.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_web_sites.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tax_web_sites_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/teams.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/termination_reason.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/termination_reason_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/territories.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tracking_notes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tracking_notes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transaction_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transaction_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/transportation_document.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tsr_exceptional_event_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/tsr_exceptional_events.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurement_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurement_groups_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurements.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/unit_of_measurements_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_default_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_fields_md.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_keys_md.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_languages.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_menu_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_objects_md.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_permission_tree.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_queries.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/user_tables_md.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/users.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/users_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping_communication.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/value_mapping_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/vat_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/vendor_payments.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/w_tax_type_code_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/w_tax_type_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_locations.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_sublevel_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouse_sublevel_codes_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/warehouses.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_bookmark_tile_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_bookmark_tiles.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_dashboard_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_dashboards.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_form_setting_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_form_settings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_launchpad_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_launchpads.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_listview_filter_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_listview_filters.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_notification_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_notifications.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_preference_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_preferences.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_recent_activities.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_recent_activity_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_group_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_groups.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variant_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/web_client_variants.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/weight_measures.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/withholding_tax_codes.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/witholding_tax_definition.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/wizard_payment_methods.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/_generated/workflow_task_service.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/async_base.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/resources/udo.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/testing.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_01_settings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_02_rest_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_03_items_endpoint.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_04_serialnumberdetails_endpoint.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_observability.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/b1sl/tests/test_utils.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/base.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/odata_decode_middleware.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/contrib/django/odata_transform_url_middleware.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/py.typed +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/client.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/config.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/endpoints/serialnumberdetailodbc.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/exceptions/exceptions.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/main.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/models/result.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/models/serial.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/odbc_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_01_settings.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_02_odbc_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/src/b1sl/saphdb/tests/test_04_serialnumberdetails_endpoint.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fakes/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fakes/fake_rest_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/mock_responses/items_list.json +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/mock_responses/items_single.json +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/fixtures/test_data.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/cassettes/test_items_real/test_get_item_real.yaml +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/cassettes/test_items_real/test_list_items_real.yaml +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/integration/test_items_real.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_middleware.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/test_saphdb_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/__init__.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/mocks/items_list.json +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/mocks/items_single.json +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_items_mock.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_rest_adapter.py +0 -0
- {b1sl_python-0.1.0 → b1sl_python-0.1.2}/tests/unit/test_service_calls.py +0 -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.
|
|
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:
|
|
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
|
-

|
|
51
|
+

|
|
45
52
|
|
|
46
53
|
[](https://www.python.org/downloads/)
|
|
47
54
|
[](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("
|
|
90
|
-
|
|
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/
|
|
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
|
-

|
|
4
|
+

|
|
5
5
|
|
|
6
6
|
[](https://www.python.org/downloads/)
|
|
7
7
|
[](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("
|
|
50
|
-
|
|
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/
|
|
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.
|
|
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 =
|
|
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/
|
|
102
|
-
"
|
|
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
|
|
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
|
-
"
|
|
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.
|
|
12
|
-
|
|
13
|
-
|
|
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.
|