Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions bfabric/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,17 @@ dependencies = [
"suds>=1.2.0,<2.0.0",
"PyYAML>=6.0.2,<7.0",
"rich>=14.0.0,<15.0.0",
"zeep>=4.3.2,<5.0",
"polars-lts-cpu>=1.30,<2.0; platform_machine == 'x86_64' and platform_system == 'Darwin'",
"polars>=1.30,<2.0; platform_machine != 'x86_64' or platform_system != 'Darwin'",
"loguru>=0.7,<0.8",
"pydantic>=2.9.2,<3.0",
"eval_type_backport; python_version < '3.10'",
"python-dateutil>=2.9.0,<3.0",
"requests>=2.27.0,<3.0",
"httpx>=0.28.1,<0.29",
]

[project.optional-dependencies]
zeep = ["zeep>=4.3.2,<5.0"]
dev = [
"bfabric[doc,test]",
"black",
Expand Down
4 changes: 3 additions & 1 deletion bfabric/src/bfabric/bfabric.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
from bfabric.config.config_data import ConfigData, load_config_data
from bfabric.config.config_file import read_config_file
from bfabric.engine.engine_suds import EngineSUDS
from bfabric.engine.engine_zeep import EngineZeep
from bfabric.rest.token_data import TokenData, get_token_data
from bfabric.results.result_container import ResultContainer
from bfabric.utils.cli_integration import DEFAULT_THEME, HostnameHighlighter
Expand All @@ -42,6 +41,7 @@
if TYPE_CHECKING:
from collections.abc import Generator
from bfabric.entities.core.entity_reader import EntityReader
from bfabric.engine.engine_zeep import EngineZeep


class Bfabric:
Expand All @@ -62,6 +62,8 @@ def _engine(self) -> EngineSUDS | EngineZeep:
if self.config.engine == BfabricAPIEngineType.SUDS:
return EngineSUDS(base_url=self._config.base_url)
elif self.config.engine == BfabricAPIEngineType.ZEEP:
from bfabric.engine.engine_zeep import EngineZeep

return EngineZeep(base_url=self._config.base_url)
else:
raise ValueError(f"Unexpected engine type: {self.config.engine}")
Expand Down
3 changes: 2 additions & 1 deletion bfabric/src/bfabric/results/response_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from typing import Any

from loguru import logger
from zeep.helpers import serialize_object

from bfabric.engine.response_format_suds import suds_asdict_recursive
from bfabric.errors import BfabricRequestError
Expand Down Expand Up @@ -37,6 +36,8 @@ def from_suds(cls, suds_response: Any, endpoint: str) -> ResponseDelete:
@classmethod
def from_zeep(cls, zeep_response: Any, endpoint: str) -> ResponseDelete:
"""Creates a `ResponseDelete` from a ZEEP response."""
from zeep.helpers import serialize_object

result_parsed = [dict(serialize_object(result, target_cls=dict)) for result in zeep_response[endpoint]]
results, errors = cls.__convert_parsed_response(result_parsed)
return cls(results=results, errors=errors, total_pages_api=None)
Expand Down
Loading