hammad-python 0.0.14__py3-none-any.whl → 0.0.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. hammad/__init__.py +177 -0
  2. hammad/{performance/imports.py → _internal.py} +7 -1
  3. hammad/cache/__init__.py +1 -1
  4. hammad/cli/__init__.py +3 -1
  5. hammad/cli/_runner.py +265 -0
  6. hammad/cli/animations.py +1 -1
  7. hammad/cli/plugins.py +133 -78
  8. hammad/cli/styles/__init__.py +1 -1
  9. hammad/cli/styles/utils.py +149 -3
  10. hammad/data/__init__.py +56 -29
  11. hammad/data/collections/__init__.py +27 -17
  12. hammad/data/collections/collection.py +205 -383
  13. hammad/data/collections/indexes/__init__.py +37 -0
  14. hammad/data/collections/indexes/qdrant/__init__.py +1 -0
  15. hammad/data/collections/indexes/qdrant/index.py +735 -0
  16. hammad/data/collections/indexes/qdrant/settings.py +94 -0
  17. hammad/data/collections/indexes/qdrant/utils.py +220 -0
  18. hammad/data/collections/indexes/tantivy/__init__.py +1 -0
  19. hammad/data/collections/indexes/tantivy/index.py +428 -0
  20. hammad/data/collections/indexes/tantivy/settings.py +51 -0
  21. hammad/data/collections/indexes/tantivy/utils.py +200 -0
  22. hammad/data/configurations/__init__.py +2 -2
  23. hammad/data/configurations/configuration.py +2 -2
  24. hammad/data/models/__init__.py +20 -9
  25. hammad/data/models/extensions/__init__.py +4 -0
  26. hammad/data/models/{pydantic → extensions/pydantic}/__init__.py +6 -19
  27. hammad/data/models/{pydantic → extensions/pydantic}/converters.py +143 -16
  28. hammad/data/models/{base/fields.py → fields.py} +1 -1
  29. hammad/data/models/{base/model.py → model.py} +1 -1
  30. hammad/data/models/{base/utils.py → utils.py} +1 -1
  31. hammad/data/sql/__init__.py +23 -0
  32. hammad/data/sql/database.py +578 -0
  33. hammad/data/sql/types.py +141 -0
  34. hammad/data/types/__init__.py +1 -3
  35. hammad/data/types/file.py +3 -3
  36. hammad/data/types/multimodal/__init__.py +2 -2
  37. hammad/data/types/multimodal/audio.py +2 -2
  38. hammad/data/types/multimodal/image.py +2 -2
  39. hammad/formatting/__init__.py +9 -27
  40. hammad/formatting/json/__init__.py +8 -2
  41. hammad/formatting/json/converters.py +7 -1
  42. hammad/formatting/text/__init__.py +1 -1
  43. hammad/formatting/yaml/__init__.py +1 -1
  44. hammad/genai/__init__.py +78 -0
  45. hammad/genai/agents/__init__.py +1 -0
  46. hammad/genai/agents/types/__init__.py +35 -0
  47. hammad/genai/agents/types/history.py +277 -0
  48. hammad/genai/agents/types/tool.py +490 -0
  49. hammad/genai/embedding_models/__init__.py +41 -0
  50. hammad/{ai/embeddings/client/litellm_embeddings_client.py → genai/embedding_models/embedding_model.py} +47 -142
  51. hammad/genai/embedding_models/embedding_model_name.py +77 -0
  52. hammad/genai/embedding_models/embedding_model_request.py +65 -0
  53. hammad/{ai/embeddings/types.py → genai/embedding_models/embedding_model_response.py} +3 -3
  54. hammad/genai/embedding_models/run.py +161 -0
  55. hammad/genai/language_models/__init__.py +35 -0
  56. hammad/genai/language_models/_streaming.py +622 -0
  57. hammad/genai/language_models/_types.py +276 -0
  58. hammad/genai/language_models/_utils/__init__.py +31 -0
  59. hammad/genai/language_models/_utils/_completions.py +131 -0
  60. hammad/genai/language_models/_utils/_messages.py +89 -0
  61. hammad/genai/language_models/_utils/_requests.py +202 -0
  62. hammad/genai/language_models/_utils/_structured_outputs.py +124 -0
  63. hammad/genai/language_models/language_model.py +734 -0
  64. hammad/genai/language_models/language_model_request.py +135 -0
  65. hammad/genai/language_models/language_model_response.py +219 -0
  66. hammad/genai/language_models/language_model_response_chunk.py +53 -0
  67. hammad/genai/language_models/run.py +530 -0
  68. hammad/genai/multimodal_models.py +48 -0
  69. hammad/genai/rerank_models.py +26 -0
  70. hammad/logging/__init__.py +1 -1
  71. hammad/logging/decorators.py +1 -1
  72. hammad/logging/logger.py +2 -2
  73. hammad/mcp/__init__.py +1 -1
  74. hammad/mcp/client/__init__.py +35 -0
  75. hammad/mcp/client/client.py +105 -4
  76. hammad/mcp/client/client_service.py +10 -3
  77. hammad/mcp/servers/__init__.py +24 -0
  78. hammad/{performance/runtime → runtime}/__init__.py +2 -2
  79. hammad/{performance/runtime → runtime}/decorators.py +1 -1
  80. hammad/{performance/runtime → runtime}/run.py +1 -1
  81. hammad/service/__init__.py +1 -1
  82. hammad/service/create.py +3 -8
  83. hammad/service/decorators.py +8 -8
  84. hammad/typing/__init__.py +28 -0
  85. hammad/web/__init__.py +3 -3
  86. hammad/web/http/client.py +1 -1
  87. hammad/web/models.py +53 -21
  88. hammad/web/search/client.py +99 -52
  89. hammad/web/utils.py +13 -13
  90. hammad_python-0.0.16.dist-info/METADATA +191 -0
  91. hammad_python-0.0.16.dist-info/RECORD +110 -0
  92. hammad/ai/__init__.py +0 -1
  93. hammad/ai/_utils.py +0 -142
  94. hammad/ai/completions/__init__.py +0 -45
  95. hammad/ai/completions/client.py +0 -684
  96. hammad/ai/completions/create.py +0 -710
  97. hammad/ai/completions/settings.py +0 -100
  98. hammad/ai/completions/types.py +0 -792
  99. hammad/ai/completions/utils.py +0 -486
  100. hammad/ai/embeddings/__init__.py +0 -35
  101. hammad/ai/embeddings/client/__init__.py +0 -1
  102. hammad/ai/embeddings/client/base_embeddings_client.py +0 -26
  103. hammad/ai/embeddings/client/fastembed_text_embeddings_client.py +0 -200
  104. hammad/ai/embeddings/create.py +0 -159
  105. hammad/data/collections/base_collection.py +0 -58
  106. hammad/data/collections/searchable_collection.py +0 -556
  107. hammad/data/collections/vector_collection.py +0 -596
  108. hammad/data/databases/__init__.py +0 -21
  109. hammad/data/databases/database.py +0 -902
  110. hammad/data/models/base/__init__.py +0 -35
  111. hammad/data/models/pydantic/models/__init__.py +0 -28
  112. hammad/data/models/pydantic/models/arbitrary_model.py +0 -46
  113. hammad/data/models/pydantic/models/cacheable_model.py +0 -79
  114. hammad/data/models/pydantic/models/fast_model.py +0 -318
  115. hammad/data/models/pydantic/models/function_model.py +0 -176
  116. hammad/data/models/pydantic/models/subscriptable_model.py +0 -63
  117. hammad/performance/__init__.py +0 -36
  118. hammad/py.typed +0 -0
  119. hammad_python-0.0.14.dist-info/METADATA +0 -70
  120. hammad_python-0.0.14.dist-info/RECORD +0 -99
  121. {hammad_python-0.0.14.dist-info → hammad_python-0.0.16.dist-info}/WHEEL +0 -0
  122. {hammad_python-0.0.14.dist-info → hammad_python-0.0.16.dist-info}/licenses/LICENSE +0 -0
@@ -1,63 +0,0 @@
1
- """hammad.data.models.pydantic.models.subscriptable_model"""
2
-
3
- from pydantic import BaseModel
4
- from typing import Any
5
-
6
- __all__ = ("SubscriptableModel",)
7
-
8
-
9
- class SubscriptableModel(BaseModel):
10
- """
11
- A pydantic model that allows for dict-like access to its fields.
12
- """
13
-
14
- def __getitem__(self, key: str) -> Any:
15
- """Get field value using dict-like access.
16
-
17
- Usage:
18
- >>> msg = Message(role='user')
19
- >>> msg['role']
20
- 'user'
21
- """
22
- if hasattr(self, key):
23
- return getattr(self, key)
24
- raise KeyError(key)
25
-
26
- def __setitem__(self, key: str, value: Any) -> None:
27
- """Set field value using dict-like access.
28
-
29
- Usage:
30
- >>> msg = Message(role='user')
31
- >>> msg['role'] = 'assistant'
32
- >>> msg['role']
33
- 'assistant'
34
- """
35
- setattr(self, key, value)
36
-
37
- def __contains__(self, key: str) -> bool:
38
- """Check if field exists using 'in' operator.
39
-
40
- Usage:
41
- >>> msg = Message(role='user')
42
- >>> 'role' in msg
43
- True
44
- >>> 'nonexistent' in msg
45
- False
46
- """
47
- if hasattr(self, key):
48
- return True
49
- if value := self.__class__.model_fields.get(key):
50
- return value.default is not None
51
- return False
52
-
53
- def get(self, key: str, default: Any = None) -> Any:
54
- """Get field value with optional default.
55
-
56
- Usage:
57
- >>> msg = Message(role='user')
58
- >>> msg.get('role')
59
- 'user'
60
- >>> msg.get('nonexistent', 'default')
61
- 'default'
62
- """
63
- return getattr(self, key) if hasattr(self, key) else default
@@ -1,36 +0,0 @@
1
- """hammad.performance
2
-
3
- Contains a collection of various utilities and resources for 'accelerating' or
4
- optimizing different objects and operations in general Python development."""
5
-
6
- from typing import TYPE_CHECKING
7
- from .imports import create_getattr_importer
8
-
9
-
10
- if TYPE_CHECKING:
11
- from .runtime import (
12
- sequentialize_function,
13
- parallelize_function,
14
- update_batch_type_hints,
15
- run_sequentially,
16
- run_parallel,
17
- run_with_retry,
18
- )
19
-
20
-
21
- __all__ = (
22
- # hammad.performance.runtime
23
- "sequentialize_function",
24
- "parallelize_function",
25
- "update_batch_type_hints",
26
- "run_sequentially",
27
- "run_parallel",
28
- "run_with_retry",
29
- )
30
-
31
-
32
- __getattr__ = create_getattr_importer(__all__)
33
-
34
-
35
- def __dir__() -> list[str]:
36
- return sorted(__all__)
hammad/py.typed DELETED
File without changes
@@ -1,70 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: hammad-python
3
- Version: 0.0.14
4
- Summary: hammad - *Nightly* hyper-fast opinionated resources and modules built for quick development.
5
- Author-email: Hammad Saeed <hammadaidev@gmail.com>
6
- License-File: LICENSE
7
- Requires-Python: >=3.11
8
- Requires-Dist: docstring-parser>=0.16
9
- Requires-Dist: duckduckgo-search>=8.0.4
10
- Requires-Dist: httpx>=0.28.1
11
- Requires-Dist: msgspec>=0.19.0
12
- Requires-Dist: prompt-toolkit>=3.0.51
13
- Requires-Dist: pydantic>=2.11.5
14
- Requires-Dist: python-dotenv>=1.1.0
15
- Requires-Dist: pyyaml>=6.0.2
16
- Requires-Dist: rich>=13.9.4
17
- Requires-Dist: selectolax>=0.3.30
18
- Requires-Dist: sqlalchemy>=2.0.41
19
- Requires-Dist: tantivy>=0.24.0
20
- Requires-Dist: tenacity>=9.0.0
21
- Requires-Dist: typing-inspect>=0.9.0
22
- Requires-Dist: uvloop>=0.21.0
23
- Provides-Extra: ai
24
- Requires-Dist: instructor>=1.9.0; extra == 'ai'
25
- Requires-Dist: litellm>=1.72.4; extra == 'ai'
26
- Requires-Dist: openai-agents>=0.0.19; extra == 'ai'
27
- Requires-Dist: qdrant-client>=1.14.3; extra == 'ai'
28
- Provides-Extra: fastembed
29
- Requires-Dist: fastembed; extra == 'fastembed'
30
- Provides-Extra: serve
31
- Requires-Dist: fastapi>=0.115.8; extra == 'serve'
32
- Requires-Dist: python-multipart>=0.0.19; extra == 'serve'
33
- Requires-Dist: sse-starlette>=1.1.0; extra == 'serve'
34
- Requires-Dist: uvicorn>=0.34.0; extra == 'serve'
35
- Description-Content-Type: text/markdown
36
-
37
- ## hammad-python
38
-
39
- > __Happily Accelerated Micro-Modules (_for_) Application Development__
40
-
41
- ## Introduction
42
-
43
- The `hammad-python` library, is a mix of a love letter and collection of mixed resources for
44
- developing Python applications. This library is meant to be used for rapid prototyping and
45
- development, and is focused on providing styled placeholder tools for common patterns, tasks
46
- and workflows.
47
-
48
- The package is currently built into the following structures:
49
-
50
- - `hammad-python` : Contains most core functionality and resources.
51
- - `hammad-python[ai]` : Contains easy to use resources for Generative AI related tasks such as
52
- generating completions with language models, or creating embeddings.
53
-
54
- ## Installation
55
-
56
- You can install the package using `pip` or `uv`:
57
-
58
- ```bash
59
- pip install hammad-python
60
-
61
- # or install the `ai` extension
62
- # pip install 'hammad-python[ai]'
63
- ```
64
-
65
- ```bash
66
- uv pip install hammad-python
67
-
68
- # or install the `ai` extension
69
- # uv pip install 'hammad-python[ai]'
70
- ```
@@ -1,99 +0,0 @@
1
- hammad/__init__.py,sha256=jlLAU-UQOE0szthvDBf3u77U6I-4quzZZ8_PWuGVPJ4,20
2
- hammad/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- hammad/ai/__init__.py,sha256=6COUrJFQoIqJIRy6tUhi5Lpml_e4qMxXWYTIIacqtoM,16
4
- hammad/ai/_utils.py,sha256=axsCHv66zfjjhlEbxaF_049fClHjQgHtUReXs8nsMwc,3950
5
- hammad/ai/completions/__init__.py,sha256=3MHiUWn7AVlbXh4vmH1ILG4MYPEYp0-CYSlZR18QO4w,1115
6
- hammad/ai/completions/client.py,sha256=4M40D_a4sbJmakBZD-lusRyEGp5YGaAKcmwBKJEroF4,26679
7
- hammad/ai/completions/create.py,sha256=o1XLpRUPoQs6q4w2DHpdUVAzQA1TqeaIr4ct1rcTMpk,31909
8
- hammad/ai/completions/settings.py,sha256=pM9ft62rMzlG2JBqQU6j-9skT6edbkbK_stajeLfFM0,3093
9
- hammad/ai/completions/types.py,sha256=o6ki8aA9SZ-bVgmUZykKIoGgeI-GqO-rddMpIyZGcsk,28140
10
- hammad/ai/completions/utils.py,sha256=lLEec1XdYBG2rBEALSfsRq88yK6gsU2uBOWH97UbxnI,17305
11
- hammad/ai/embeddings/__init__.py,sha256=HmJBRWdzASa0nEa37GIkJiSbAaLXV-k48omra374kmA,1090
12
- hammad/ai/embeddings/create.py,sha256=voVD6WLvoyIgqIMYOmJKJFxUho8ZIl0YDfbgM4X6B6w,6590
13
- hammad/ai/embeddings/types.py,sha256=FCr2r4IYN-xYBmRXadocDQhDC2foC49X940UTVi9bgo,1772
14
- hammad/ai/embeddings/client/__init__.py,sha256=F2SO89Q6xOYQWNfvAONBJdDLoXIsCxON6I1BxpjEkGQ,34
15
- hammad/ai/embeddings/client/base_embeddings_client.py,sha256=EMT8jDMa0TKIV9XA9Tx9ze7eJ882OuCLL9KucI2EezQ,600
16
- hammad/ai/embeddings/client/fastembed_text_embeddings_client.py,sha256=EWiaS9U-K7gnc2g8qHN-3lHCCgsEaCc-1Hny-DV3rf4,6956
17
- hammad/ai/embeddings/client/litellm_embeddings_client.py,sha256=EMl7V6XiGUGaDs9N_HZaJ2GUJwW8LpWquiNF_yXzP3o,10042
18
- hammad/cache/__init__.py,sha256=Ab97dA3tUUy4fts5kMOlSoVoYPydDShTJSMve6emGgY,964
19
- hammad/cache/base_cache.py,sha256=kYJS2IcQtxhzT7BQBFtOWnhw4VkvAapPhAVkfbW5IeY,6353
20
- hammad/cache/cache.py,sha256=bzDXxjSolrSdIxqES2VMfVZZGTk_8k4x9n0AW4tlifs,4621
21
- hammad/cache/decorators.py,sha256=olYLK5x4JkxHpA8WIiplI45QYmNIzyGjNMrTKNRCSQg,9599
22
- hammad/cache/file_cache.py,sha256=XjLJxM4Ql65OABxz8q1DtA_s8HZQJKywCw6MNVnC6YE,2485
23
- hammad/cache/ttl_cache.py,sha256=-0pJ4lkVgg1OIb98bQFub9n6f4zgWVs-dQfKZe_DmpE,2153
24
- hammad/cli/__init__.py,sha256=Tz0OyzLJHeW6wnKwX-xnA0oN4FE1Z2zm3WntFzE2RNI,743
25
- hammad/cli/animations.py,sha256=q8rMyboRUwmgBwHutPj4oveDjw9BPTu1UjL53XlOb-U,19514
26
- hammad/cli/plugins.py,sha256=61cljGF_V03_6xrBhO0tR-rrlgB44veHh5HXcxMTM3Y,26932
27
- hammad/cli/styles/__init__.py,sha256=PDQEHlMhujetCVurTGRW3LOKZLr7338DQvKCFt4Fyjs,1373
28
- hammad/cli/styles/settings.py,sha256=irChf9RsMij3djx_n9D9duoVIzxLCpd9-BlKl6U_OLk,5532
29
- hammad/cli/styles/types.py,sha256=vNIeQY_23m10K8qVT7Iy-PMwosGL-La-UAZKszHJjEE,7911
30
- hammad/cli/styles/utils.py,sha256=BGFwQIEJHWlTAXed8ZxHeI_phLfEdh-_Mok2fe-jn7g,19356
31
- hammad/data/__init__.py,sha256=0PKUAZMYUk3eb5JAg7e1pUJwb0NtWMhicIo-O7TU-o4,1380
32
- hammad/data/collections/__init__.py,sha256=trapmRN7MUEgLZsJfCanU2rbn8-hSw3uIGjD-uwz-fg,823
33
- hammad/data/collections/base_collection.py,sha256=ZRht7OZjLIT8GxNvMgNxTarbCTY6EUUurEkGHZ3Rsy4,1419
34
- hammad/data/collections/collection.py,sha256=MWjyY3YqZa3U9WH3Br8v-Q_FLP5XWf3p0lIMGzfIeJ4,15758
35
- hammad/data/collections/searchable_collection.py,sha256=vCV_JgMwB57QRi4Cri6dfEUzLCyTBN58_JfWEKL2h_0,21361
36
- hammad/data/collections/vector_collection.py,sha256=x3-pFoi6v9uRCpCmLdcVwJpo-6FVIVw_JTLWV4pYAiY,20901
37
- hammad/data/configurations/__init__.py,sha256=-qd2LClmGgoCvucePfpZVJDP0sXR95b4J3x9lK3MX_o,838
38
- hammad/data/configurations/configuration.py,sha256=M3JBpPjynOMdhjJrV9HiIzuTPKqo6i9dh7NiaCbp_L0,17739
39
- hammad/data/databases/__init__.py,sha256=xlQFbwW9O0UzjZS5uh2BipgRzMFcwz1q7Bg0aDdqFuU,410
40
- hammad/data/databases/database.py,sha256=7ngi-oWAsmAdtLTvpT4axw5ftcMzqsCtJmfmjzw5etk,31160
41
- hammad/data/models/__init__.py,sha256=kGErTmEmWS5fqTRd-ESsetf_aRZTEUgt5k3uYWAx_fw,895
42
- hammad/data/models/base/__init__.py,sha256=uCltlgyHVMk1GdAbqArPBC2xjRVE5U7BGaAfoBrPPcY,812
43
- hammad/data/models/base/fields.py,sha256=n02Qqq1AkcxwGCGEjcBSu63uWSkcyfxisATr7nwc7DA,19173
44
- hammad/data/models/base/model.py,sha256=_qyJ3IRJTwRXqZsYMpuYP8FTbMfLgh75VbTrTt1Wqx8,39121
45
- hammad/data/models/base/utils.py,sha256=kmdWqDcCTB7y4w5pdAfyrOfpzqj1hjKILIklAwbvNxM,9957
46
- hammad/data/models/pydantic/__init__.py,sha256=uv2KhaxACJf5rUURlUjB3gXWcb0EDEDXF98QoK_KQTI,1501
47
- hammad/data/models/pydantic/converters.py,sha256=ePV4GXco_eEZ5cTYH0vk2bv3ywZztvAzwEgenUeQicA,20544
48
- hammad/data/models/pydantic/models/__init__.py,sha256=tEjSun4IPyUfVvYst8e8l9JgvRanAvJt0iLNYiigHdc,670
49
- hammad/data/models/pydantic/models/arbitrary_model.py,sha256=xgCt4e7CyD0CF8Ozk9TNNLa_Kxue4K1QAs8vj6S-WQY,1536
50
- hammad/data/models/pydantic/models/cacheable_model.py,sha256=xnv-5Bf7uf6ELQ-amuZghRDfuuX1eFmaDh7Lz5IRpdU,2821
51
- hammad/data/models/pydantic/models/fast_model.py,sha256=RiVyutUS296tQp7gK7IrHXeLWVtSx9wKU_vf9keuYuU,11728
52
- hammad/data/models/pydantic/models/function_model.py,sha256=6YTGzHAtwlybn3M46dry6JgfGjuo1TntXtHVZ5pqrHQ,6312
53
- hammad/data/models/pydantic/models/subscriptable_model.py,sha256=K5ZqxrDxikKv2iMv7_Xt3liG9AZ73cSNhzuOZpjed7w,1718
54
- hammad/data/types/__init__.py,sha256=asGaCmHSYo7r5mXR8tWA0b3ermLCMGAuZDXXDkR6W3w,770
55
- hammad/data/types/file.py,sha256=gBpQxQCJJJVOFeUS_7NRkhA1pB54b6Wy3NzOH-fmnWY,11116
56
- hammad/data/types/text.py,sha256=rATiwkTsAJ8pWzZ7OBsWX7rDNoKvkeuWsGWd_sbuUaM,33369
57
- hammad/data/types/multimodal/__init__.py,sha256=FrQJ7GoUfI-zen5m2oayzXfDlShKqqSQG4zLXlL-3Nw,431
58
- hammad/data/types/multimodal/audio.py,sha256=HAKWi96F2kJ2dLMDXTeVLYlXPhaFZAH55TCROuirMzo,2786
59
- hammad/data/types/multimodal/image.py,sha256=oI9DMHw6XxV2ma3XIWqK-jwczi5HUNszGzIl_BtEuxA,2274
60
- hammad/formatting/__init__.py,sha256=J4VSLnZk2ImZCBtVg2el0KZFcwQNmU1UyF4wdiz-i5E,776
61
- hammad/formatting/json/__init__.py,sha256=Sv-p-85VFcmVE3vHbgu23jGZB0tzJRFX0HKJDYLc6KA,472
62
- hammad/formatting/json/converters.py,sha256=4AYKxsqDftKtjfxFTIY9mQ0_CbrUmAK_6EBpD2X40pU,5502
63
- hammad/formatting/text/__init__.py,sha256=lpDcwMpKN0ZyMYxGBNd52fAWQ0UhOTkjkNP1WqJ1xjM,1516
64
- hammad/formatting/text/converters.py,sha256=g3z-ZGTaKNVbLFFKBSh6qN2Uz0BSkdxCaN3LR9cAyV8,23806
65
- hammad/formatting/text/markdown.py,sha256=D17NOoGkoXUBhoOGKelKHwi72iqsAwPU5HEFjRJtLQI,3407
66
- hammad/formatting/yaml/__init__.py,sha256=EEkOsh6DYH0F2mIU-mzFXgNqcc_GmqHaIPlKGCnj2tg,472
67
- hammad/formatting/yaml/converters.py,sha256=zvSB8QGb56uvwO0KjXllfTj9g1FmNINOKR06DTjvXw8,153
68
- hammad/logging/__init__.py,sha256=2fMnpKO20HWcyYbgQnGzV02g1t0kbH_c8wLmHIV5Hrk,711
69
- hammad/logging/decorators.py,sha256=xhHRA7WhesgdVMSwK_JvqZhGb90GF3TbYco13Y7aY0w,30119
70
- hammad/logging/logger.py,sha256=8q-7anLeZk07QlPszdt_qzsQPaeuZyDHevV8C6R_okk,31451
71
- hammad/mcp/__init__.py,sha256=aaXwQOI4kJ8Dkbsg9rb8kZ5NJ6NqeT7aDmfQKPJcOAM,1133
72
- hammad/mcp/client/__init__.py,sha256=FdvJqHaup6KgonBRvE570B2X-_GwY-ZlEtsXBLXubcw,24
73
- hammad/mcp/client/client.py,sha256=kRPKAcTenUSp1aL7oCnrOw0AoSqU9dVdf1H_r1rkDaY,17959
74
- hammad/mcp/client/client_service.py,sha256=lZUkNJo9BBrwR8qUtDByzofMx6aJJuer9w2uHZFBCW0,14874
75
- hammad/mcp/client/settings.py,sha256=7bLpJYyiUT_H7zp3SDwLyAt9fmiQwL3L89qVTAZYpi8,5913
76
- hammad/mcp/servers/__init__.py,sha256=lxlhxoBPPhlFAJl87AL-11Qbl1Jhit27lmPDC03Ww8I,25
77
- hammad/mcp/servers/launcher.py,sha256=jQDQOqz-cKK2PSEOxoPBCVsBeTABNNjcwTXSWE4-LQA,41606
78
- hammad/performance/__init__.py,sha256=hAbp_40Uw5LqGy-K2MCoiee1DUazb8GT49_GJ7LQGKs,789
79
- hammad/performance/imports.py,sha256=WwbrufLOkrvqJh3CLp8H_7nmGEE8vcWNbJN74Dk_gGg,7814
80
- hammad/performance/runtime/__init__.py,sha256=xk7rdpDb_s2EIxu2bvpOlhAZh5ZV1ckRIviSapL9wFM,672
81
- hammad/performance/runtime/decorators.py,sha256=TC6JL5MVu9ak2XUNpuzpwPY6nirKDLgbd-iuUNI0YIA,4536
82
- hammad/performance/runtime/run.py,sha256=K6GS6SGs8ktztiBAAgU8oaPpycravjPAgJD_tXAjQpA,10814
83
- hammad/service/__init__.py,sha256=U8wxhj5l9JdeJZXIPT7Eo7gZacxJ2PQ-xN58gy5Lb5g,1232
84
- hammad/service/create.py,sha256=x9N3uAzWeoInnq7HJpUTf3m87sYCFP5jLQK3S91ArLo,16423
85
- hammad/service/decorators.py,sha256=QBZ7iZK1c-tTNoKt6vqnNFN2BT-FdLaGz_f6vOmeY1w,10028
86
- hammad/typing/__init__.py,sha256=jQEwoJVMdgk1VQTLyMiJaU7l5P8JIvcvwcjMazE7iSo,10923
87
- hammad/web/__init__.py,sha256=CbHQXPfybL1qv2yi0_HmeOqNkjzz9xSdXKmot2gSub8,1063
88
- hammad/web/models.py,sha256=q9d4_3UPvHcvG_HuULxKHQuNrllA2S-3CSP3HdU21Cs,5637
89
- hammad/web/utils.py,sha256=7jf_esoIwctKg1qxSaN6yAgzeo70HT1IdSVqoNdHFSQ,15815
90
- hammad/web/http/__init__.py,sha256=jn9Rn7Yg2cypD7duTTNFuW2wQZx9B63Bde4RJJeDYU0,22
91
- hammad/web/http/client.py,sha256=J_W0d1vop92uANQ7YD1o72XAp95Ma67Uz1YolNDF19M,33086
92
- hammad/web/openapi/__init__.py,sha256=JhJQ6_laBmB2djIYFc0vgGha2GsdUe4FP1LDdZCQ5J4,25
93
- hammad/web/openapi/client.py,sha256=1pXz7KAO_0pN4kQZoWKWskXDYGiJ535TsPO1GGCiC0E,26816
94
- hammad/web/search/__init__.py,sha256=e9A6znPIiZCz-4secyHbUs0uUGf5yAqW6wGacgx961U,24
95
- hammad/web/search/client.py,sha256=4VEhctFf_4LRxM2TXsEssSW6tbaZnu0NYaIVMYQrJNs,35434
96
- hammad_python-0.0.14.dist-info/METADATA,sha256=ECSnj__tLbSE19XURH8fuHtt_iplioxoNN0QbSmBWtw,2302
97
- hammad_python-0.0.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
98
- hammad_python-0.0.14.dist-info/licenses/LICENSE,sha256=h74yFUWjbBaodcWG5wNmm30npjl8obVcxD-1nQfUp2I,1069
99
- hammad_python-0.0.14.dist-info/RECORD,,