hammad-python 0.0.10__tar.gz → 0.0.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. {hammad_python-0.0.10 → hammad_python-0.0.12}/.gitignore +5 -0
  2. {hammad_python-0.0.10 → hammad_python-0.0.12}/PKG-INFO +16 -7
  3. hammad_python-0.0.12/docs/fonts/zed-mono-extended.ttf +0 -0
  4. hammad_python-0.0.12/docs/fonts/zed-sans-extended.ttf +0 -0
  5. hammad_python-0.0.12/docs/stylesheets/extras.css +351 -0
  6. hammad_python-0.0.12/docs/stylesheets/icon.svg +1 -0
  7. hammad_python-0.0.12/hammad/__init__.py +180 -0
  8. hammad_python-0.0.12/hammad/_core/__init__.py +1 -0
  9. hammad_python-0.0.12/hammad/_core/_utils/__init__.py +4 -0
  10. hammad_python-0.0.12/hammad/_core/_utils/_import_utils.py +182 -0
  11. hammad_python-0.0.12/hammad/ai/__init__.py +59 -0
  12. hammad_python-0.0.12/hammad/ai/_utils.py +142 -0
  13. hammad_python-0.0.12/hammad/ai/completions/__init__.py +44 -0
  14. hammad_python-0.0.12/hammad/ai/completions/client.py +729 -0
  15. hammad_python-0.0.12/hammad/ai/completions/create.py +686 -0
  16. hammad_python-0.0.12/hammad/ai/completions/types.py +711 -0
  17. hammad_python-0.0.12/hammad/ai/completions/utils.py +374 -0
  18. hammad_python-0.0.12/hammad/ai/embeddings/__init__.py +35 -0
  19. hammad_python-0.0.12/hammad/ai/embeddings/client/__init__.py +1 -0
  20. hammad_python-0.0.12/hammad/ai/embeddings/client/base_embeddings_client.py +26 -0
  21. hammad_python-0.0.12/hammad/ai/embeddings/client/fastembed_text_embeddings_client.py +200 -0
  22. hammad_python-0.0.12/hammad/ai/embeddings/client/litellm_embeddings_client.py +288 -0
  23. hammad_python-0.0.12/hammad/ai/embeddings/create.py +159 -0
  24. hammad_python-0.0.12/hammad/ai/embeddings/types.py +69 -0
  25. hammad_python-0.0.12/hammad/base/__init__.py +35 -0
  26. hammad_python-0.0.12/hammad/base/fields.py +546 -0
  27. hammad_python-0.0.12/hammad/base/model.py +1078 -0
  28. hammad_python-0.0.12/hammad/base/utils.py +280 -0
  29. hammad_python-0.0.12/hammad/cache/__init__.py +48 -0
  30. hammad_python-0.0.12/hammad/cache/base_cache.py +181 -0
  31. hammad_python-0.0.12/hammad/cache/cache.py +169 -0
  32. hammad_python-0.0.12/hammad/cache/decorators.py +261 -0
  33. hammad_python-0.0.12/hammad/cache/file_cache.py +80 -0
  34. hammad_python-0.0.12/hammad/cache/ttl_cache.py +74 -0
  35. hammad_python-0.0.12/hammad/cli/__init__.py +33 -0
  36. hammad_python-0.0.12/hammad/cli/animations.py +604 -0
  37. hammad_python-0.0.12/hammad/cli/plugins.py +781 -0
  38. hammad_python-0.0.12/hammad/cli/styles/__init__.py +55 -0
  39. hammad_python-0.0.12/hammad/cli/styles/settings.py +139 -0
  40. hammad_python-0.0.12/hammad/cli/styles/types.py +358 -0
  41. hammad_python-0.0.12/hammad/cli/styles/utils.py +480 -0
  42. hammad_python-0.0.12/hammad/configuration/__init__.py +35 -0
  43. hammad_python-0.0.12/hammad/configuration/configuration.py +564 -0
  44. hammad_python-0.0.12/hammad/data/__init__.py +39 -0
  45. hammad_python-0.0.12/hammad/data/collections/__init__.py +34 -0
  46. hammad_python-0.0.12/hammad/data/collections/base_collection.py +58 -0
  47. hammad_python-0.0.12/hammad/data/collections/collection.py +452 -0
  48. hammad_python-0.0.12/hammad/data/collections/searchable_collection.py +556 -0
  49. hammad_python-0.0.12/hammad/data/collections/vector_collection.py +603 -0
  50. hammad_python-0.0.12/hammad/data/databases/__init__.py +21 -0
  51. hammad_python-0.0.12/hammad/data/databases/database.py +902 -0
  52. hammad_python-0.0.12/hammad/json/__init__.py +21 -0
  53. {hammad_python-0.0.10/hammad/utils → hammad_python-0.0.12/hammad}/json/converters.py +4 -1
  54. hammad_python-0.0.12/hammad/logging/__init__.py +35 -0
  55. hammad_python-0.0.12/hammad/logging/decorators.py +834 -0
  56. hammad_python-0.0.12/hammad/logging/logger.py +954 -0
  57. hammad_python-0.0.12/hammad/multimodal/__init__.py +24 -0
  58. hammad_python-0.0.12/hammad/multimodal/audio.py +96 -0
  59. hammad_python-0.0.12/hammad/multimodal/image.py +80 -0
  60. hammad_python-0.0.12/hammad/multithreading/__init__.py +304 -0
  61. hammad_python-0.0.12/hammad/pydantic/__init__.py +43 -0
  62. {hammad_python-0.0.10/hammad/utils → hammad_python-0.0.12/hammad}/pydantic/converters.py +2 -1
  63. hammad_python-0.0.12/hammad/pydantic/models/__init__.py +28 -0
  64. hammad_python-0.0.12/hammad/pydantic/models/arbitrary_model.py +46 -0
  65. hammad_python-0.0.12/hammad/pydantic/models/cacheable_model.py +79 -0
  66. hammad_python-0.0.12/hammad/pydantic/models/fast_model.py +318 -0
  67. hammad_python-0.0.12/hammad/pydantic/models/function_model.py +176 -0
  68. hammad_python-0.0.12/hammad/pydantic/models/subscriptable_model.py +63 -0
  69. hammad_python-0.0.12/hammad/text/__init__.py +82 -0
  70. hammad_python-0.0.12/hammad/text/converters.py +723 -0
  71. hammad_python-0.0.10/hammad/utils/markdown/formatting.py → hammad_python-0.0.12/hammad/text/markdown.py +25 -23
  72. hammad_python-0.0.12/hammad/text/text.py +1066 -0
  73. hammad_python-0.0.12/hammad/types/__init__.py +11 -0
  74. hammad_python-0.0.12/hammad/types/file.py +358 -0
  75. hammad_python-0.0.10/hammad/utils/typing/utils.py → hammad_python-0.0.12/hammad/typing/__init__.py +142 -15
  76. hammad_python-0.0.12/hammad/web/__init__.py +43 -0
  77. hammad_python-0.0.12/hammad/web/http/__init__.py +1 -0
  78. hammad_python-0.0.12/hammad/web/http/client.py +944 -0
  79. hammad_python-0.0.12/hammad/web/models.py +245 -0
  80. hammad_python-0.0.12/hammad/web/openapi/client.py +740 -0
  81. hammad_python-0.0.12/hammad/web/search/__init__.py +1 -0
  82. hammad_python-0.0.12/hammad/web/search/client.py +988 -0
  83. hammad_python-0.0.12/hammad/web/utils.py +472 -0
  84. hammad_python-0.0.12/hammad/yaml/__init__.py +30 -0
  85. hammad_python-0.0.12/hammad/yaml/converters.py +19 -0
  86. hammad_python-0.0.12/mkdocs.yml +74 -0
  87. {hammad_python-0.0.10 → hammad_python-0.0.12}/pyproject.toml +31 -12
  88. hammad_python-0.0.12/tests/ai/completions/test_ai_completions_create.py +241 -0
  89. hammad_python-0.0.12/tests/ai/completions/test_ai_completions_types.py +585 -0
  90. hammad_python-0.0.12/tests/base/test_base_fields.py +468 -0
  91. hammad_python-0.0.12/tests/base/test_base_model.py +841 -0
  92. hammad_python-0.0.10/tests/test_cache.py → hammad_python-0.0.12/tests/cache/test_cache_cache.py +13 -8
  93. hammad_python-0.0.12/tests/cli/test_cli_plugins_animate.py +134 -0
  94. hammad_python-0.0.12/tests/cli/test_cli_plugins_input.py +227 -0
  95. hammad_python-0.0.12/tests/cli/test_cli_plugins_print.py +181 -0
  96. hammad_python-0.0.12/tests/cli/test_cli_styles_utils.py +125 -0
  97. hammad_python-0.0.12/tests/data/test_data_collections_searchable_collection.py +308 -0
  98. hammad_python-0.0.12/tests/data/test_data_collections_vector_collection.py +495 -0
  99. hammad_python-0.0.12/tests/data/test_data_databases_database.py +725 -0
  100. hammad_python-0.0.10/tests/test_utils_json_converters.py → hammad_python-0.0.12/tests/json/test_json_converters.py +1 -1
  101. hammad_python-0.0.12/tests/logging/test_logging_decorators.py +534 -0
  102. hammad_python-0.0.12/tests/logging/test_logging_logger.py +237 -0
  103. hammad_python-0.0.12/tests/pydantic/test_pydantic_converters.py +269 -0
  104. hammad_python-0.0.12/tests/pydantic/test_pydantic_models.py +288 -0
  105. hammad_python-0.0.12/tests/text/test_text_text.py +523 -0
  106. hammad_python-0.0.10/tests/test_utils_text_converters.py → hammad_python-0.0.12/tests/text/test_text_utils_converters.py +2 -2
  107. hammad_python-0.0.10/tests/test_utils_markdown_converters.py → hammad_python-0.0.12/tests/text/test_text_utils_markdown_converters.py +47 -59
  108. hammad_python-0.0.10/tests/test_utils_typing_utils.py → hammad_python-0.0.12/tests/typing/test_typing_utils.py +1 -1
  109. hammad_python-0.0.12/tests/web/test_web_toolkits_http_toolkit.py +369 -0
  110. hammad_python-0.0.12/tests/web/test_web_toolkits_openapi_toolkit.py +586 -0
  111. hammad_python-0.0.12/tests/web/test_web_utils.py +364 -0
  112. {hammad_python-0.0.10 → hammad_python-0.0.12}/uv.lock +1430 -549
  113. hammad_python-0.0.10/hammad/__init__.py +0 -13
  114. hammad_python-0.0.10/hammad/cache.py +0 -675
  115. hammad_python-0.0.10/hammad/database.py +0 -447
  116. hammad_python-0.0.10/hammad/logger.py +0 -273
  117. hammad_python-0.0.10/hammad/types/color.py +0 -951
  118. hammad_python-0.0.10/hammad/utils/markdown/__init__.py +0 -0
  119. hammad_python-0.0.10/hammad/utils/markdown/converters.py +0 -506
  120. hammad_python-0.0.10/hammad/utils/pydantic/__init__.py +0 -0
  121. hammad_python-0.0.10/hammad/utils/text/__init__.py +0 -0
  122. hammad_python-0.0.10/hammad/utils/text/converters.py +0 -229
  123. hammad_python-0.0.10/hammad/utils/typing/__init__.py +0 -0
  124. hammad_python-0.0.10/tests/test_database.py +0 -541
  125. hammad_python-0.0.10/tests/test_types_color.py +0 -158
  126. hammad_python-0.0.10/tests/test_utils_pydantic_converters.py +0 -314
  127. {hammad_python-0.0.10 → hammad_python-0.0.12}/.python-version +0 -0
  128. {hammad_python-0.0.10 → hammad_python-0.0.12}/LICENSE +0 -0
  129. {hammad_python-0.0.10 → hammad_python-0.0.12}/README.md +0 -0
  130. /hammad_python-0.0.10/hammad/types/__init__.py → /hammad_python-0.0.12/hammad/py.typed +0 -0
  131. {hammad_python-0.0.10/hammad/utils → hammad_python-0.0.12/hammad/web/openapi}/__init__.py +0 -0
  132. /hammad_python-0.0.10/hammad/utils/json/__init__.py → /hammad_python-0.0.12/tests/configuration/test_configuration.py +0 -0
@@ -6,6 +6,11 @@
6
6
  .cursorrules
7
7
  .claude/
8
8
  .dev/
9
+ .__old__/
10
+ dev/
11
+ # For Dev
12
+ tester.py
13
+ .z/
9
14
 
10
15
  # Byte-compiled / optimized / DLL files
11
16
  __pycache__/
@@ -1,23 +1,32 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hammad-python
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: hammad - *Nightly* hyper-fast opinionated resources and modules built for quick development.
5
5
  Author-email: Hammad Saeed <hammadaidev@gmail.com>
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.11
8
8
  Requires-Dist: docstring-parser>=0.16
9
- Requires-Dist: duckduckgo-search>=7.3.0
9
+ Requires-Dist: duckduckgo-search>=8.0.4
10
+ Requires-Dist: httpx>=0.28.1
10
11
  Requires-Dist: msgspec>=0.19.0
11
- Requires-Dist: platformdirs>=4.3.8
12
+ Requires-Dist: prompt-toolkit>=3.0.51
12
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
13
18
  Requires-Dist: sqlalchemy>=2.0.41
14
19
  Requires-Dist: tantivy>=0.24.0
20
+ Requires-Dist: tenacity>=9.0.0
15
21
  Requires-Dist: typing-inspect>=0.9.0
22
+ Requires-Dist: uvloop>=0.21.0
16
23
  Provides-Extra: ai
17
- Requires-Dist: instructor>=1.8.3; extra == 'ai'
18
- Requires-Dist: litellm; extra == 'ai'
19
- Requires-Dist: memvid; extra == 'ai'
20
- Requires-Dist: openai-agents; 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'
21
30
  Provides-Extra: serve
22
31
  Requires-Dist: fastapi>=0.115.8; extra == 'serve'
23
32
  Requires-Dist: python-multipart>=0.0.19; extra == 'serve'
@@ -0,0 +1,351 @@
1
+ @font-face {
2
+ font-family: "Zed Mono";
3
+ src: url("../fonts/zed-mono-extended.ttf") format("truetype");
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
7
+
8
+ @font-face {
9
+ font-family: "Zed Sans";
10
+ src: url("../fonts/zed-sans-extended.ttf") format("truetype");
11
+ font-weight: normal;
12
+ font-style: normal;
13
+ }
14
+
15
+ :root {
16
+ --md-text-font: "Zed Sans";
17
+ }
18
+
19
+ :root {
20
+ --md-code-font: "Zed Mono";
21
+ }
22
+
23
+ /* Styling for code boxes */
24
+ .md-typeset pre {
25
+ border-radius: 6px;
26
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
27
+ }
28
+
29
+ .md-typeset code {
30
+ border-radius: 3px;
31
+ padding: 0.2em 0.4em;
32
+ }
33
+
34
+ [data-md-color-scheme="home-light"] {
35
+ --md-hue: 60deg;
36
+
37
+ --md-primary-fg-color: #F5F5F0; /* Soft Cream */
38
+ --md-primary-fg-color--light: #E8E8E3; /* Light Cream */
39
+ --md-primary-fg-color--dark: #DCDCD7; /* Muted Cream */
40
+ --md-primary-bg-color: #2D2D2D; /* Soft Charcoal */
41
+ --md-primary-bg-color--light: #3D3D3D; /* Medium Charcoal */
42
+
43
+ --md-accent-fg-color: #89CFF0; /* Baby Blue */
44
+ --md-accent-fg-color--transparent: #89CFF033; /* Baby Blue with transparency */
45
+
46
+ --md-default-fg-color: #2D2D2D; /* Soft Charcoal */
47
+ --md-default-fg-color--light: #3D3D3D; /* Medium Charcoal */
48
+ --md-default-fg-color--lighter: #4D4D4D; /* Light Charcoal */
49
+ --md-default-fg-color--lightest: #DCDCD7; /* Muted Cream */
50
+ --md-default-bg-color: #F5F5F0; /* Soft Cream */
51
+ --md-default-bg-color--light: #E8E8E3; /* Light Cream */
52
+ --md-default-bg-color--lighter: #DCDCD7; /* Muted Cream */
53
+ --md-default-bg-color--lightest: #E9C7B7; /* Soft Peach */
54
+
55
+ --md-code-fg-color: #4A4A4A; /* Soft Black */
56
+ --md-code-bg-color: #E8E8E3; /* Light Cream */
57
+ --md-code-hl-color: #DCDCD7; /* Muted Cream */
58
+
59
+ --md-code-hl-number-color: #F0A07C; /* Soft Coral */
60
+ --md-code-hl-special-color: #F0CF7C; /* Soft Yellow */
61
+ --md-code-hl-function-color: #D7B4D9; /* Soft Purple */
62
+ --md-code-hl-constant-color: #A8D7C2; /* Soft Mint */
63
+ --md-code-hl-keyword-color: #F0A07C; /* Soft Coral */
64
+ --md-code-hl-string-color: #BFD9A8; /* Soft Green */
65
+ --md-code-hl-name-color: #A8C4D9; /* Soft Blue */
66
+ --md-code-hl-operator-color: #A8D7C2; /* Soft Mint */
67
+ --md-code-hl-punctuation-color: #B4B4B4; /* Soft Gray */
68
+ --md-code-hl-comment-color: #C2C2C2; /* Light Gray */
69
+ --md-code-hl-generic-color: #8A8A8A; /* Medium Gray */
70
+ --md-code-hl-variable-color: #A8C4D9; /* Soft Blue */
71
+
72
+ --md-typeset-color: var(--md-default-fg-color);
73
+ --md-typeset-a-color: #E6A99F; /* Soft Terracotta */
74
+
75
+ --md-typeset-mark-color: #E9C7B780; /* Soft Peach with transparency */
76
+
77
+ --md-typeset-table-color: #DCDCD7; /* Muted Cream */
78
+ --md-typeset-table-color--light: #E8E8E3; /* Light Cream */
79
+
80
+ --md-admonition-fg-color: var(--md-default-fg-color);
81
+ --md-admonition-bg-color: var(--md-default-bg-color);
82
+
83
+ --md-warning-fg-color: #2D2D2D; /* Soft Charcoal */
84
+ --md-warning-bg-color: #E9C7B7; /* Soft Peach */
85
+
86
+ --md-footer-fg-color: #F5F5F0; /* Soft Cream */
87
+ --md-footer-fg-color--light: #E8E8E3; /* Light Cream */
88
+ --md-footer-fg-color--lighter: #DCDCD7; /* Muted Cream */
89
+ --md-footer-bg-color: #2D2D2D; /* Soft Charcoal */
90
+ --md-footer-bg-color--dark: #3D3D3D; /* Medium Charcoal */
91
+
92
+ --md-code-shadow-color: rgba(0, 0, 0, 0.05);
93
+ }
94
+
95
+ [data-md-color-scheme="home-dark"] {
96
+ --md-hue: 220deg;
97
+
98
+ --md-primary-fg-color: #2D2D2D; /* Soft Charcoal */
99
+ --md-primary-fg-color--light: #3D3D3D; /* Medium Charcoal */
100
+ --md-primary-fg-color--dark: #4D4D4D; /* Light Charcoal */
101
+ --md-primary-bg-color: #F5F5F0; /* Soft Cream */
102
+ --md-primary-bg-color--light: #E8E8E3; /* Light Cream */
103
+
104
+ --md-accent-fg-color: #89CFF0; /* Baby Blue */
105
+ --md-accent-fg-color--transparent: #89CFF033; /* Baby Blue with transparency */
106
+
107
+ --md-default-fg-color: #F5F5F0; /* Soft Cream */
108
+ --md-default-fg-color--light: #E8E8E3; /* Light Cream */
109
+ --md-default-fg-color--lighter: #DCDCD7; /* Muted Cream */
110
+ --md-default-fg-color--lightest: #1e1e1e; /* Soft Peach */
111
+ --md-default-bg-color: #2D2D2D; /* Soft Charcoal */
112
+ --md-default-bg-color--light: #3D3D3D; /* Medium Charcoal */
113
+ --md-default-bg-color--lighter: #4D4D4D; /* Light Charcoal */
114
+ --md-default-bg-color--lightest: #5D5D5D; /* Lighter Charcoal */
115
+
116
+ --md-code-fg-color: #E8E8E3; /* Light Cream */
117
+ --md-code-bg-color: #3D3D3D; /* Medium Charcoal */
118
+ --md-code-hl-color: #4D4D4D; /* Light Charcoal */
119
+
120
+ --md-code-hl-number-color: #FFB5A1; /* Light Coral */
121
+ --md-code-hl-special-color: #FFE5A1; /* Light Yellow */
122
+ --md-code-hl-function-color: #E8C6EA; /* Light Purple */
123
+ --md-code-hl-constant-color: #B8E8D4; /* Light Mint */
124
+ --md-code-hl-keyword-color: #FFB5A1; /* Light Coral */
125
+ --md-code-hl-string-color: #D1E8B8; /* Light Green */
126
+ --md-code-hl-name-color: #B8D5E8; /* Light Blue */
127
+ --md-code-hl-operator-color: #B8E8D4; /* Light Mint */
128
+ --md-code-hl-punctuation-color: #D1D1D1; /* Light Gray */
129
+ --md-code-hl-comment-color: #B8B8B8; /* Medium Gray */
130
+ --md-code-hl-generic-color: #E8E8E8; /* Off White */
131
+ --md-code-hl-variable-color: #B8D5E8; /* Light Blue */
132
+
133
+ --md-typeset-color: var(--md-default-fg-color);
134
+ --md-typeset-a-color: #E6A99F; /* Soft Terracotta */
135
+
136
+ --md-typeset-mark-color: #E9C7B780; /* Soft Peach with transparency */
137
+
138
+ --md-typeset-table-color: #4D4D4D; /* Light Charcoal */
139
+ --md-typeset-table-color--light: #3D3D3D; /* Medium Charcoal */
140
+
141
+ --md-admonition-fg-color: var(--md-default-fg-color);
142
+ --md-admonition-bg-color: var(--md-default-bg-color);
143
+
144
+ --md-warning-fg-color: #2D2D2D; /* Soft Charcoal */
145
+ --md-warning-bg-color: #E9C7B7; /* Soft Peach */
146
+
147
+ --md-footer-fg-color: #F5F5F0; /* Soft Cream */
148
+ --md-footer-fg-color--light: #E8E8E3; /* Light Cream */
149
+ --md-footer-fg-color--lighter: #DCDCD7; /* Muted Cream */
150
+ --md-footer-bg-color: #2D2D2D; /* Soft Charcoal */
151
+ --md-footer-bg-color--dark: #3D3D3D; /* Medium Charcoal */
152
+
153
+ --md-code-shadow-color: rgba(0, 0, 0, 0.2);
154
+ }
155
+
156
+ /* Apply theme-specific shadow to code boxes */
157
+ .md-typeset pre {
158
+ box-shadow: 0 2px 6px var(--md-code-shadow-color);
159
+ }
160
+
161
+ /* Ensure inline code uses theme background */
162
+ .md-typeset code:not(pre code) {
163
+ background-color: var(--md-code-bg-color);
164
+ color: var(--md-code-fg-color);
165
+ }
166
+
167
+ /* Add horizontal padding to headers */
168
+ .md-header_inner {
169
+ margin-left: 20px;
170
+ margin-right: 20px;
171
+ }
172
+
173
+ .md-header--lifted {
174
+ border-bottom-left-radius: 10px;
175
+ border-bottom-right-radius: 10px;
176
+ }
177
+
178
+ .md-tabs {
179
+ border-bottom-left-radius: 10px;
180
+ border-bottom-right-radius: 10px;
181
+ }
182
+
183
+ .md-header--shadow {
184
+ margin-left: 20px;
185
+ margin-right: 20px;
186
+ }
187
+
188
+ .md-footer {
189
+ border-top-left-radius: 10px;
190
+ border-top-right-radius: 10px;
191
+ margin-left: 20px;
192
+ margin-right: 20px;
193
+ }
194
+
195
+ .md-footer-meta {
196
+ margin-left: 20px;
197
+ margin-right: 20px;
198
+ }
199
+
200
+ .md-ellipsis {
201
+ position: relative;
202
+ }
203
+
204
+ .md-header__title .md-ellipsis {
205
+ position: relative;
206
+ }
207
+
208
+ .jupyter-wrapper .highlight pre {
209
+ background-color: #1e1e1e !important;
210
+ }
211
+
212
+ .jupyter-wrapper .CodeMirror {
213
+ background-color: #1e1e1e !important;
214
+ }
215
+
216
+ .grid.cards {
217
+ border-radius: 6px;
218
+ }
219
+
220
+ .md-footer-meta {
221
+ border-top-left-radius : 10px;
222
+ border-top-right-radius : 10px;
223
+ }
224
+
225
+ .md-nav__item--section {
226
+ font-family: var(--md-text-font);
227
+ color: var(--md-default-fg-color);
228
+ font-style: bold;
229
+ font-size: 1.2em;
230
+ }
231
+
232
+ .md-nav__link {
233
+ font-family: var(--md-text-font);
234
+ color: var(--md-default-fg-color);
235
+ font-style: normal;
236
+ font-size: 0.95em;
237
+ }
238
+
239
+ .jp-InputArea-editor {
240
+ background: var(--md-code-bg-color);
241
+ border-radius: 12px;
242
+ }
243
+
244
+ .highlight-ipynb {
245
+ font-family: var(--md-code-font) !important;
246
+ font-size: 16px !important;
247
+ }
248
+
249
+ /* Comments */
250
+ .highlight-ipynb .c1 {
251
+ color: var(--md-code-hl-comment-color) !important;
252
+ font-style: italic;
253
+ }
254
+
255
+ .highlight-ipynb .sd {
256
+ color: var(--md-code-hl-comment-color) !important;
257
+ font-style: italic;
258
+ }
259
+
260
+ .highlight-ipynb .s2 {
261
+ color: var(--md-code-hl-string-color) !important;
262
+ }
263
+
264
+ .highlight-ipynb .s1 {
265
+ color: var(--md-code-hl-string-color) !important;
266
+ }
267
+
268
+ /* Keywords ('import', 'def', etc.) */
269
+ .highlight-ipynb .kn {
270
+ color: var(--md-code-hl-keyword-color) !important;
271
+ font-style: italic;
272
+ }
273
+
274
+ .highlight-ipynb .k {
275
+ color: var(--md-code-hl-keyword-color) !important;
276
+ font-style: italic;
277
+ }
278
+
279
+ /* types */
280
+ .highlight-ipynb .nb {
281
+ color: var(--md-code-hl-constant-color) !important;
282
+ font-style: italic;
283
+ }
284
+
285
+ /* Names (function names, variable names, etc.) */
286
+ .highlight-ipynb .nn {
287
+ color: var(--md-code-hl-function-color) !important;
288
+ }
289
+
290
+ .highlight-ipynb .n {
291
+ color: var(--md-code-hl-name-color) !important;
292
+ }
293
+
294
+ /* Operators ('+', '-', '*', etc.) */
295
+ .highlight-ipynb .o {
296
+ color: var(--md-code-hl-operator-color) !important;
297
+ }
298
+
299
+ /* Parentheses */
300
+ .highlight-ipynb .p {
301
+ color: var(--md-code-hl-punctuation-color) !important;
302
+ }
303
+
304
+ .md-typeset blockquote {
305
+ color: var(--md-default-fg-color--lighter) !important;
306
+ margin-left: 0;
307
+ margin-right: 0;
308
+ }
309
+
310
+ .jp-InputPrompt {
311
+ flex: 0 0 var(--jp-cell-prompt-width);
312
+ padding: 6px;
313
+ font-family: var(--md-code-font);
314
+ letter-spacing: 1px;
315
+ line-height: 1.6;
316
+ font-size: var(--jp-code-font-size);
317
+ border: var(--jp-border-width) solid transparent;
318
+ }
319
+
320
+ .CodeMirror {
321
+ background-color: var(--md-code-bg-color) !important;
322
+ color: var(--md-code-fg-color) !important;
323
+ }
324
+
325
+ .jp-CodeMirrorEditor {
326
+ border-radius: 12px !important;
327
+ }
328
+
329
+ .jp-Editor {
330
+ border-radius: 12px !important;
331
+ }
332
+
333
+ .jp-InputArea-editor {
334
+ border-radius: 12px !important;
335
+ border: none !important;
336
+ padding: 8px !important;
337
+ background-color: #1e1e1e !important;
338
+ }
339
+
340
+ .jp-InputArea-prompt {
341
+ color: var(--md-code-fg-color) !important;
342
+ }
343
+
344
+ .jp-OutputArea-output {
345
+ background-color: #1e1e1e !important;
346
+ border-radius: 12px !important;
347
+ padding-left: 8px !important;
348
+ padding-right: 8px !important;
349
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
350
+ font-size: 14px !important;
351
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 15H6l7-14v8h5l-7 14z"></path></svg>
@@ -0,0 +1,180 @@
1
+ """hammad-python
2
+
3
+ ```markdown
4
+ ## Happliy Accelerated Micro Modules (for) Application Development
5
+ ```
6
+ """
7
+
8
+ from typing import TYPE_CHECKING
9
+ from ._core._utils._import_utils import _auto_create_getattr_loader
10
+
11
+
12
+ if TYPE_CHECKING:
13
+ # hammad.ai
14
+ # NOTE:
15
+ # TO USE MODULES FROM THE `hammad.ai` EXTENSION,
16
+ # REQUIRES INSTALLATION OF THE `hammad-python[ai]` PACKAGE.
17
+ from .ai import (
18
+ create_completion,
19
+ async_create_completion,
20
+ create_embeddings,
21
+ async_create_embeddings,
22
+ )
23
+
24
+ # hammad.base
25
+ from .base import Model, field, create_model, is_field, is_model, validator
26
+
27
+ # hammad.cache
28
+ from .cache import Cache, cached, auto_cached, create_cache
29
+
30
+ # hammad.cli
31
+ from .cli import print, animate, input
32
+
33
+ # hammad.configuration
34
+ from .configuration import (
35
+ Configuration,
36
+ read_configuration_from_os_vars,
37
+ read_configuration_from_dotenv,
38
+ read_configuration_from_file,
39
+ read_configuration_from_url,
40
+ read_configuration_from_os_prefix,
41
+ )
42
+
43
+ # hammad.data
44
+ from .data import Collection, Database, create_collection, create_database
45
+
46
+ # hammad.json
47
+ from .json import encode_json, decode_json, convert_to_json_schema
48
+
49
+ # hammad.logging
50
+ from .logging import (
51
+ Logger,
52
+ create_logger,
53
+ trace,
54
+ trace_cls,
55
+ trace_function,
56
+ trace_http,
57
+ install_trace_http,
58
+ )
59
+
60
+ # hammad.multithreading
61
+ from .multithreading import (
62
+ run_parallel,
63
+ run_sequentially,
64
+ run_with_retry,
65
+ retry,
66
+ )
67
+
68
+ # hammad.pydantic
69
+ from .pydantic import (
70
+ convert_to_pydantic_field,
71
+ convert_to_pydantic_model,
72
+ )
73
+
74
+ # hammad.text
75
+ from .text import (
76
+ Text,
77
+ OutputText,
78
+ SimpleText,
79
+ convert_to_text,
80
+ convert_type_to_text,
81
+ convert_docstring_to_text,
82
+ )
83
+
84
+ # hammad.web
85
+ from .web import (
86
+ create_http_client,
87
+ create_openapi_client,
88
+ create_search_client,
89
+ search_news,
90
+ search_web,
91
+ run_web_request,
92
+ read_web_page,
93
+ read_web_pages,
94
+ extract_page_links,
95
+ )
96
+
97
+ # hammad.yaml
98
+ from .yaml import encode_yaml, decode_yaml, read_yaml_file
99
+
100
+
101
+ __all__ = (
102
+ # hammad.ai
103
+ "create_completion",
104
+ "async_create_completion",
105
+ "create_embeddings",
106
+ "async_create_embeddings",
107
+ # hammad.base
108
+ "Model",
109
+ "field",
110
+ "create_model",
111
+ # hammad.cache
112
+ "Cache",
113
+ "cached",
114
+ "auto_cached",
115
+ "create_cache",
116
+ # hammad.cli
117
+ "print",
118
+ "animate",
119
+ "input",
120
+ # hammad.configuration
121
+ "Configuration",
122
+ "read_configuration_from_os_vars",
123
+ "read_configuration_from_dotenv",
124
+ "read_configuration_from_file",
125
+ "read_configuration_from_url",
126
+ "read_configuration_from_os_prefix",
127
+ # hammad.data
128
+ "Collection",
129
+ "Database",
130
+ "create_collection",
131
+ "create_database",
132
+ # hammad.json
133
+ "encode_json",
134
+ "decode_json",
135
+ "convert_to_json_schema",
136
+ # hammad.logging
137
+ "Logger",
138
+ "create_logger",
139
+ "trace",
140
+ "trace_cls",
141
+ "trace_function",
142
+ "trace_http",
143
+ "install_trace_http",
144
+ # hammad.multithreading
145
+ "run_parallel",
146
+ "run_sequentially",
147
+ "run_with_retry",
148
+ "retry",
149
+ # hammad.pydantic
150
+ "convert_to_pydantic_field",
151
+ "convert_to_pydantic_model",
152
+ # hammad.text
153
+ "Text",
154
+ "OutputText",
155
+ "SimpleText",
156
+ "convert_to_text",
157
+ "convert_type_to_text",
158
+ "convert_docstring_to_text",
159
+ # hammad.web
160
+ "create_http_client",
161
+ "create_openapi_client",
162
+ "create_search_client",
163
+ "search_news",
164
+ "search_web",
165
+ "run_web_request",
166
+ "read_web_page",
167
+ "read_web_pages",
168
+ "extract_page_links",
169
+ # hammad.yaml
170
+ "encode_yaml",
171
+ "decode_yaml",
172
+ "read_yaml_file",
173
+ )
174
+
175
+
176
+ __getattr__ = _auto_create_getattr_loader(__all__)
177
+
178
+
179
+ def __dir__() -> list[str]:
180
+ return list(__all__)
@@ -0,0 +1 @@
1
+ """hammad._core"""
@@ -0,0 +1,4 @@
1
+ """hammad._core._utils
2
+
3
+ Contains internal utility functions use at a low level for various cases
4
+ throughout the `hammad` package."""