wiil-python 0.0.15__tar.gz → 0.0.16__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.
- wiil_python-0.0.16/PKG-INFO +480 -0
- wiil_python-0.0.16/README.md +441 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/pyproject.toml +3 -3
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/property_management/property_inquiry.py +20 -0
- wiil_python-0.0.16/wiil_python.egg-info/PKG-INFO +480 -0
- wiil_python-0.0.15/PKG-INFO +0 -633
- wiil_python-0.0.15/README.md +0 -594
- wiil_python-0.0.15/wiil_python.egg-info/PKG-INFO +0 -633
- {wiil_python-0.0.15 → wiil_python-0.0.16}/setup.cfg +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/async_wiil_client.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/http_client.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/wiil_client.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/client/will_service.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/errors/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/errors/exceptions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/account/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/account/organization.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/account/project.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/account/supported_business_verticals.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/assistant_setups/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/assistant_setups/assistant_setup_result.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/assistant_setups/base_assistant_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/assistant_setups/phone_assistant_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/assistant_setups/web_assistant_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/base.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/bookings_shared.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/business_location.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/customer_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/customer_management/customer.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/customer_management/customer_group.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/customer_management/shipping_address.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/discount_rule.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_catalog.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_item_variant.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_order.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_pricing_rule.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/menu_set.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/menu_management/modifier.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/order.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/pricing_rule_shared.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_axis_binding.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_display.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_order.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_pricing_rule.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_set.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_variant.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/product_management/product_variant_axis.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/property_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/property_management/property_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/property_management/property_inquiry.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/assignment/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/assignment/rental_assignment.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/assignment/room_assignment.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/assignment/table_assignment.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_floor_plan_definition.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_maintenance_block.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_rental.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_resource.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_room.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_section.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_settings.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_slot_query.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_table.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/reservation_table_layout.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/resource/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/resource/resource.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/resource/resource_category.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/resource/resource_instance.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/reservation_management/resource/resource_versioning.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/appointment_additional_info.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/appointment_field_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_appointment.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_person.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_pricing_rule.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_provider.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_slot_query.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/service_management/service_time_off.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/business_mgt/tax_rule.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/conversation_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/conversation_message.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/outbound_call.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/outbound_email.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/outbound_sms.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/outbound_template.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/translation_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/conversation/translation_conversation.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/request/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/request/paginated_query.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/request/paginated_result.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/agent_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/call_transfer_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/deployment_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/dynamic_setup/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/dynamic_setup/base_agent_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/dynamic_setup/phone_agent_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/dynamic_setup/web_agent_setup.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/instruction_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/interaction_channels.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/knowledge.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/phone_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/phone_number.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/provisioning_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/support_llm.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/service_mgt/voice_language.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/account_definitions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/business_definitions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/conversation_definitions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/display_order.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/dynamic_fields/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/dynamic_fields/field_definition.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/dynamic_fields/field_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/knowledge_definitions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/models/type_definitions/service_config_definitions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/py.typed +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/account/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/account/organizations.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/account/projects.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/customer_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/customer_management/customer_groups.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/customer_management/customers.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/customer_management/shipping_addresses.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/location_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/location_management/business_locations.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/menu_item_variants.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/menu_orders.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/menu_pricing_rules.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/menu_sets.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/menus.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/menu_management/modifiers.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/pricing_rules/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/pricing_rules/discount_rules.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/pricing_rules/tax_rules.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_axis_bindings.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_orders.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_pricing_rules.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_sets.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_variant_axes.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/product_variants.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/product_management/products.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/property_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/property_management/property_config.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/floor_plan_sections.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/floor_plans.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/maintenance_blocks.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/rental_assignments.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/rental_reservations.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/reservation_resources.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/reservation_settings.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/resource_categories.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/resource_instances.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/room_assignments.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/room_reservations.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/table_assignments.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/reservation_management/table_reservations.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/appointment_additional_info.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/appointment_field_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/business_services.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_appointments.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_categories.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_persons.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_pricing_rules.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_providers.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/business_mgt/service_management/service_time_offs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/outbound_calls.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/outbound_emails.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/outbound_sms.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/outbound_templates.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/conversation/translation_services.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/agent_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/conversation_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/deployment_channels.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/deployment_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/dynamic_agent_status.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/dynamic_phone_agent.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/dynamic_web_agent.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/instruction_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/knowledge_sources.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/phone_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/provisioning_configs.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/support_models.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/telephony_provider.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/resources/service_mgt/translation_sessions.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/messaging/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/messaging/service.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/ott/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/ott/models.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/ott/service.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/translation/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/translation/models.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/services/translation/service.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/__init__.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/account_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/business_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/conversation_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/knowledge_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/paginated_quest.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/paginated_result.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil/types/service_types.py +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil_python.egg-info/SOURCES.txt +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil_python.egg-info/dependency_links.txt +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil_python.egg-info/requires.txt +0 -0
- {wiil_python-0.0.15 → wiil_python-0.0.16}/wiil_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wiil-python
|
|
3
|
+
Version: 0.0.16
|
|
4
|
+
Summary: Official Python SDK for WIIL Platform - AI-powered conversational services for intelligent customer interactions, voice processing, real-time translation, and business management
|
|
5
|
+
Author-email: WIIL <dev-support@wiil.io>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://console.wiil.io
|
|
8
|
+
Project-URL: Documentation, https://docs.wiil.io
|
|
9
|
+
Project-URL: Repository, https://github.com/wiil-io/wiil-python
|
|
10
|
+
Project-URL: Issues, https://github.com/wiil-io/wiil-python/issues
|
|
11
|
+
Keywords: wiil,wiil-platform,wiil-sdk,ai,artificial-intelligence,conversational-ai,chatbot,voice-ai,speech-to-text,text-to-speech,stt,tts,translation,real-time-translation,voice-translation,business-automation,appointment-booking,reservation-system,order-management,customer-service,telephony,voice-calls,agent-deployment,python,sdk
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
Requires-Dist: requests>=2.31.0
|
|
26
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
27
|
+
Requires-Dist: email-validator>=2.0.0
|
|
28
|
+
Requires-Dist: typing-extensions>=4.5.0; python_version < "3.11"
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
33
|
+
Requires-Dist: httpx>=0.28.0; extra == "dev"
|
|
34
|
+
Requires-Dist: responses>=0.25.0; extra == "dev"
|
|
35
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
36
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
37
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
38
|
+
Requires-Dist: respx>=0.20.0; extra == "dev"
|
|
39
|
+
|
|
40
|
+
# WIIL Python SDK
|
|
41
|
+
|
|
42
|
+
Ship AI-powered business features without building telecom, catalog infrastructure, or integration plumbing.
|
|
43
|
+
|
|
44
|
+
[](https://www.python.org/)
|
|
45
|
+
[](https://opensource.org/licenses/MIT)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## What You Can Ship
|
|
50
|
+
|
|
51
|
+
This SDK gives you APIs to build:
|
|
52
|
+
|
|
53
|
+
- **Catalog-aware AI agents** - Agents grounded in real business data such as menus, products, services, reservations, and properties
|
|
54
|
+
- **Multi-channel conversations** - Web, phone, SMS, and email workflows through unified APIs
|
|
55
|
+
- **Transaction workflows** - Appointments, reservations, orders, inquiries, and outbound follow-ups
|
|
56
|
+
- **Outbound communications** - Automated calls, emails, and SMS without provider setup
|
|
57
|
+
|
|
58
|
+
What you skip building:
|
|
59
|
+
|
|
60
|
+
- Telephony integration, SMS gateways, SMTP servers
|
|
61
|
+
- Voice pipeline infrastructure for STT, LLM, and TTS workflows
|
|
62
|
+
- Catalog schema design and multi-location logic
|
|
63
|
+
- Retry logic, queue management, and delivery tracking
|
|
64
|
+
- Channel-specific protocols and failure handling
|
|
65
|
+
|
|
66
|
+
**You write the business logic. The SDK handles the infrastructure.**
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install wiil-python
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
For isolated projects:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
python -m venv .venv
|
|
80
|
+
source .venv/bin/activate
|
|
81
|
+
pip install wiil-python
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
On Windows PowerShell:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
python -m venv .venv
|
|
88
|
+
.venv\Scripts\Activate.ps1
|
|
89
|
+
pip install wiil-python
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Quick Start
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
import os
|
|
98
|
+
|
|
99
|
+
from wiil import WiilClient
|
|
100
|
+
|
|
101
|
+
client = WiilClient(api_key=os.environ["WIIL_API_KEY"])
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Deploy an AI Agent
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
from wiil.models.service_mgt.dynamic_setup import (
|
|
108
|
+
DynamicPhoneAgentSetup,
|
|
109
|
+
DynamicWebAgentSetup,
|
|
110
|
+
)
|
|
111
|
+
from wiil.types import BusinessSupportServices
|
|
112
|
+
|
|
113
|
+
# Phone agent with live number
|
|
114
|
+
phone = client.dynamic_phone_agent.create(
|
|
115
|
+
DynamicPhoneAgentSetup(
|
|
116
|
+
assistant_name="Sarah",
|
|
117
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
print("Phone number:", phone.phone_number)
|
|
121
|
+
|
|
122
|
+
# Web agent with widget snippets
|
|
123
|
+
web = client.dynamic_web_agent.create(
|
|
124
|
+
DynamicWebAgentSetup(
|
|
125
|
+
assistant_name="Emma",
|
|
126
|
+
website_url="https://example.com",
|
|
127
|
+
capabilities=[BusinessSupportServices.APPOINTMENT_MANAGEMENT],
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
print("Widget snippets:", web.integration_snippets)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Send Notifications
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
import time
|
|
137
|
+
|
|
138
|
+
from wiil.models.conversation import (
|
|
139
|
+
CreateCallRequest,
|
|
140
|
+
CreateEmailRequest,
|
|
141
|
+
CreateSmsRequest,
|
|
142
|
+
EmailRecipient,
|
|
143
|
+
)
|
|
144
|
+
from wiil.types import ScheduleType
|
|
145
|
+
|
|
146
|
+
# Email
|
|
147
|
+
client.outbound_emails.create(
|
|
148
|
+
CreateEmailRequest(
|
|
149
|
+
to=[EmailRecipient(email="customer@example.com")],
|
|
150
|
+
template_id="order_confirmation",
|
|
151
|
+
subject="Order confirmed",
|
|
152
|
+
body_html="<p>Your order {{orderNumber}} is confirmed.</p>",
|
|
153
|
+
body_text="Your order {{orderNumber}} is confirmed.",
|
|
154
|
+
variables={"orderNumber": "ORD-123"},
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
# SMS
|
|
159
|
+
client.outbound_sms.create(
|
|
160
|
+
CreateSmsRequest(
|
|
161
|
+
to="+14155551234",
|
|
162
|
+
from_number="+14155555678",
|
|
163
|
+
body="Your appointment is confirmed for tomorrow at 2 PM.",
|
|
164
|
+
)
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
# Voice call
|
|
168
|
+
client.outbound_calls.create(
|
|
169
|
+
CreateCallRequest(
|
|
170
|
+
to="+14155551234",
|
|
171
|
+
from_number="+14155555678",
|
|
172
|
+
agent_configuration_id="reminder_agent",
|
|
173
|
+
schedule_type=ScheduleType.SCHEDULED,
|
|
174
|
+
scheduled_at=int(time.time() * 1000) + 2 * 60 * 60 * 1000,
|
|
175
|
+
)
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Manage Business Catalogs
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
from wiil.models.business_mgt import (
|
|
183
|
+
CreateBusinessMenuItem,
|
|
184
|
+
CreateBusinessMenuItemVariant,
|
|
185
|
+
CreateBusinessProduct,
|
|
186
|
+
CreateBusinessProductVariant,
|
|
187
|
+
CreateBusinessService,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
# Services
|
|
191
|
+
service = client.business_services.create(
|
|
192
|
+
CreateBusinessService(
|
|
193
|
+
name="Hair Styling",
|
|
194
|
+
duration=60,
|
|
195
|
+
base_price=75.00,
|
|
196
|
+
)
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
# Menu items with variants
|
|
200
|
+
menu_item = client.menus.create_item(
|
|
201
|
+
CreateBusinessMenuItem(
|
|
202
|
+
name="Cheeseburger",
|
|
203
|
+
category_id="cat_main",
|
|
204
|
+
price=12.99,
|
|
205
|
+
variants=[
|
|
206
|
+
CreateBusinessMenuItemVariant(
|
|
207
|
+
name="Regular",
|
|
208
|
+
price=12.99,
|
|
209
|
+
is_default=True,
|
|
210
|
+
is_active=True,
|
|
211
|
+
is_available=True,
|
|
212
|
+
)
|
|
213
|
+
],
|
|
214
|
+
)
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
# Products with variants
|
|
218
|
+
product = client.products.create(
|
|
219
|
+
CreateBusinessProduct(
|
|
220
|
+
name="Wireless Mouse",
|
|
221
|
+
category_id="cat_electronics",
|
|
222
|
+
price=29.99,
|
|
223
|
+
is_alcoholic=False,
|
|
224
|
+
variants=[
|
|
225
|
+
CreateBusinessProductVariant(
|
|
226
|
+
axis_values={},
|
|
227
|
+
price=29.99,
|
|
228
|
+
is_default=True,
|
|
229
|
+
is_active=True,
|
|
230
|
+
)
|
|
231
|
+
],
|
|
232
|
+
)
|
|
233
|
+
)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Book Transactions Through AI Workflows
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
from wiil.models.business_mgt import CreateServiceAppointment, CreateTableReservation
|
|
240
|
+
|
|
241
|
+
appointment = client.service_appointments.create(
|
|
242
|
+
CreateServiceAppointment(
|
|
243
|
+
business_service_id=service.id,
|
|
244
|
+
customer_id="cust_123",
|
|
245
|
+
start_time=int(time.time() * 1000) + 24 * 60 * 60 * 1000,
|
|
246
|
+
duration=60,
|
|
247
|
+
)
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
reservation = client.table_reservations.create(
|
|
251
|
+
CreateTableReservation(
|
|
252
|
+
resource_id="table_5",
|
|
253
|
+
customer_id="cust_123",
|
|
254
|
+
floor_plan_id="floor_main",
|
|
255
|
+
persons_number=4,
|
|
256
|
+
time=int(time.time() * 1000) + 2 * 60 * 60 * 1000,
|
|
257
|
+
duration=90,
|
|
258
|
+
)
|
|
259
|
+
)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Examples & Guides
|
|
265
|
+
|
|
266
|
+
Comprehensive guides are in the [`examples/`](./examples/) directory.
|
|
267
|
+
|
|
268
|
+
### Getting Started
|
|
269
|
+
|
|
270
|
+
| Guide | What You Build |
|
|
271
|
+
| ----- | -------------- |
|
|
272
|
+
| [Dynamic Agent Setup](./examples/dynamic-agent-setup-guide.md) | Deploy phone/web agents in one API call |
|
|
273
|
+
| [Fundamental Configuration](./examples/fundamental-configuration-setup.md) | Fine-grained multi-step agent setup |
|
|
274
|
+
|
|
275
|
+
### Outbound Communications
|
|
276
|
+
|
|
277
|
+
| Guide | What You Build |
|
|
278
|
+
| ----- | -------------- |
|
|
279
|
+
| [Outbound Communications](./examples/outbound-communications-guide.md) | Full notification system across calls, email, and SMS |
|
|
280
|
+
| [Messaging Quick Start](./examples/messaging-guide.md) | Send your first notification in minutes |
|
|
281
|
+
|
|
282
|
+
### Business Services
|
|
283
|
+
|
|
284
|
+
| Guide | What You Build |
|
|
285
|
+
| ----- | -------------- |
|
|
286
|
+
| [Services & Appointments](./examples/business-services/services-and-appointments-guide.md) | Bookable services and appointment scheduling |
|
|
287
|
+
| [Menus & Orders](./examples/business-services/menus-and-orders-guide.md) | Restaurant menus and food ordering |
|
|
288
|
+
| [Products & Orders](./examples/business-services/products-and-orders-guide.md) | Product catalogs and retail orders |
|
|
289
|
+
| [Reservations](./examples/business-services/reservations-guide.md) | Tables, rooms, rentals, and bookings |
|
|
290
|
+
| [Property Management](./examples/business-services/property-management-guide.md) | Listings, inquiries, and lead tracking |
|
|
291
|
+
|
|
292
|
+
### Channels
|
|
293
|
+
|
|
294
|
+
| Guide | What You Build |
|
|
295
|
+
| ----- | -------------- |
|
|
296
|
+
| [Web Channels](./examples/channels/web-channels.md) | Chat widget integration |
|
|
297
|
+
| [Voice Channels](./examples/channels/voice-channels.md) | Phone call handling |
|
|
298
|
+
| [SMS Channels](./examples/channels/sms-channels.md) | Text messaging |
|
|
299
|
+
|
|
300
|
+
[See all examples](./examples/README.md)
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## SDK Features
|
|
305
|
+
|
|
306
|
+
- **Type-Safe** - Python type hints with Pydantic models
|
|
307
|
+
- **Validated** - Runtime validation using Pydantic
|
|
308
|
+
- **Production-Grade** - Robust error handling and configurable timeouts
|
|
309
|
+
- **Modern** - Synchronous and asynchronous clients
|
|
310
|
+
- **Comprehensive** - Account, service management, business management, conversation, and outbound resources
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Available Resources
|
|
315
|
+
|
|
316
|
+
### Dynamic Agent Setup
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
client.dynamic_phone_agent
|
|
320
|
+
client.dynamic_web_agent
|
|
321
|
+
client.dynamic_agent_status
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Outbound APIs
|
|
325
|
+
|
|
326
|
+
```python
|
|
327
|
+
client.outbound_templates
|
|
328
|
+
client.outbound_calls
|
|
329
|
+
client.outbound_emails
|
|
330
|
+
client.outbound_sms
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Service Configuration
|
|
334
|
+
|
|
335
|
+
```python
|
|
336
|
+
client.agent_configs
|
|
337
|
+
client.instruction_configs
|
|
338
|
+
client.deployment_configs
|
|
339
|
+
client.deployment_channels
|
|
340
|
+
client.provisioning_configs
|
|
341
|
+
client.support_models
|
|
342
|
+
client.telephony_provider
|
|
343
|
+
client.conversation_configs
|
|
344
|
+
client.knowledge_sources
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Business Management
|
|
348
|
+
|
|
349
|
+
```python
|
|
350
|
+
client.business_services
|
|
351
|
+
client.customers
|
|
352
|
+
client.menus
|
|
353
|
+
client.menu_item_variants
|
|
354
|
+
client.modifiers
|
|
355
|
+
client.products
|
|
356
|
+
client.product_variants
|
|
357
|
+
client.product_sets
|
|
358
|
+
client.service_appointments
|
|
359
|
+
client.table_reservations
|
|
360
|
+
client.room_reservations
|
|
361
|
+
client.rental_reservations
|
|
362
|
+
client.menu_orders
|
|
363
|
+
client.product_orders
|
|
364
|
+
client.reservation_resources
|
|
365
|
+
client.floor_plans
|
|
366
|
+
client.property_config
|
|
367
|
+
client.property_inquiry
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Error Handling
|
|
373
|
+
|
|
374
|
+
```python
|
|
375
|
+
from wiil.errors import WiilAPIError, WiilNetworkError, WiilValidationError
|
|
376
|
+
|
|
377
|
+
try:
|
|
378
|
+
result = client.business_services.create(
|
|
379
|
+
CreateBusinessService(name="Consultation", duration=30, base_price=50)
|
|
380
|
+
)
|
|
381
|
+
except WiilValidationError as exc:
|
|
382
|
+
print("Invalid input:", exc.details)
|
|
383
|
+
except WiilAPIError as exc:
|
|
384
|
+
print(f"API error {exc.status_code}:", exc.message)
|
|
385
|
+
print("Code:", exc.code)
|
|
386
|
+
except WiilNetworkError:
|
|
387
|
+
print("Network error. Retry with backoff.")
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Async Support
|
|
393
|
+
|
|
394
|
+
```python
|
|
395
|
+
import asyncio
|
|
396
|
+
import os
|
|
397
|
+
|
|
398
|
+
from wiil import AsyncWiilClient
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
async def main() -> None:
|
|
402
|
+
async with AsyncWiilClient(api_key=os.environ["WIIL_API_KEY"]) as client:
|
|
403
|
+
organization = await client.organizations.get()
|
|
404
|
+
print("Organization:", organization.company_name)
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
asyncio.run(main())
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## Configuration
|
|
413
|
+
|
|
414
|
+
```python
|
|
415
|
+
from wiil import WiilClient
|
|
416
|
+
|
|
417
|
+
client = WiilClient(
|
|
418
|
+
api_key="your-api-key",
|
|
419
|
+
base_url="https://api.wiil.io/v1",
|
|
420
|
+
timeout=60,
|
|
421
|
+
)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Security
|
|
427
|
+
|
|
428
|
+
Server-side only. Never expose your API key in client-side code.
|
|
429
|
+
|
|
430
|
+
```python
|
|
431
|
+
import os
|
|
432
|
+
|
|
433
|
+
from wiil import WiilClient
|
|
434
|
+
|
|
435
|
+
# Good: environment variable
|
|
436
|
+
client = WiilClient(api_key=os.environ["WIIL_API_KEY"])
|
|
437
|
+
|
|
438
|
+
# Bad: hardcoded key
|
|
439
|
+
client = WiilClient(api_key="sk_live_...")
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## Requirements
|
|
445
|
+
|
|
446
|
+
- Python 3.8 or higher
|
|
447
|
+
- Pydantic
|
|
448
|
+
- requests/httpx, depending on sync or async usage
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Development
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
pip install -e ".[dev]"
|
|
456
|
+
pytest
|
|
457
|
+
pytest --cov=wiil --cov-report=html
|
|
458
|
+
black wiil tests
|
|
459
|
+
ruff check wiil tests
|
|
460
|
+
mypy wiil
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## Support
|
|
466
|
+
|
|
467
|
+
- **Documentation**: [https://docs.wiil.io](https://docs.wiil.io)
|
|
468
|
+
- **API Reference**: [https://docs.wiil.io/developer/api-reference](https://docs.wiil.io/developer/api-reference)
|
|
469
|
+
- **Issues**: [GitHub Issues](https://github.com/wiil-io/wiil-python/issues)
|
|
470
|
+
- **Email**: [dev-support@wiil.io](mailto:dev-support@wiil.io)
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
## License
|
|
475
|
+
|
|
476
|
+
MIT (c) [WIIL](https://wiil.io)
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
Built with care by the WIIL team
|