hopeit.engine 0.26.2__tar.gz → 0.26.3__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 (56) hide show
  1. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/PKG-INFO +9 -10
  2. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/pyproject.toml +8 -9
  3. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/config.py +3 -3
  4. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/context.py +1 -1
  5. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/cli/openapi.py +7 -16
  6. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/cli/server.py +2 -11
  7. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/api.py +1 -1
  8. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/config.py +1 -0
  9. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/logger.py +5 -4
  10. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/names.py +24 -2
  11. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/version.py +1 -1
  12. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/web.py +1 -1
  13. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/PKG-INFO +9 -10
  14. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/requires.txt +8 -9
  15. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/README.md +0 -0
  16. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/setup.cfg +0 -0
  17. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/__init__.py +0 -0
  18. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/api.py +0 -0
  19. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/client.py +0 -0
  20. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/errors.py +0 -0
  21. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/events.py +0 -0
  22. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/logger.py +0 -0
  23. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/app/py.typed +0 -0
  24. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/cli/__init__.py +0 -0
  25. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/cli/py.typed +0 -0
  26. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/dataobjects/__init__.py +0 -0
  27. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/dataobjects/payload.py +0 -0
  28. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/dataobjects/py.typed +0 -0
  29. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/__init__.py +0 -0
  30. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/collector.py +0 -0
  31. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/compression.py +0 -0
  32. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/engine.py +0 -0
  33. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/errors.py +0 -0
  34. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/events.py +0 -0
  35. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/imports.py +0 -0
  36. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/metrics.py +0 -0
  37. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/py.typed +0 -0
  38. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/runtime.py +0 -0
  39. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/serialization.py +0 -0
  40. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/steps.py +0 -0
  41. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/server/wsgi.py +0 -0
  42. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/streams/__init__.py +0 -0
  43. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/streams/py.typed +0 -0
  44. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/testing/__init__.py +0 -0
  45. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/testing/apps.py +0 -0
  46. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/testing/encryption.py +0 -0
  47. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/testing/hooks.py +0 -0
  48. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/testing/py.typed +0 -0
  49. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/toolkit/__init__.py +0 -0
  50. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/toolkit/auth.py +0 -0
  51. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/toolkit/py.typed +0 -0
  52. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit/toolkit/web.py +0 -0
  53. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/SOURCES.txt +0 -0
  54. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/dependency_links.txt +0 -0
  55. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/entry_points.txt +0 -0
  56. {hopeit_engine-0.26.2 → hopeit_engine-0.26.3}/src/hopeit.engine.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hopeit.engine
3
- Version: 0.26.2
3
+ Version: 0.26.3
4
4
  Summary: Hopeit Engine: Microservices with Streams
5
5
  Author-email: Leo Smerling & Pablo Canto <contact@hopeit.com.ar>, Leo Smerling <contact@hopeit.com.ar>, Pablo Canto <contact@hopeit.com.ar>
6
6
  License: Apache 2
@@ -25,7 +25,6 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
25
  Classifier: Framework :: AsyncIO
26
26
  Description-Content-Type: text/markdown
27
27
  Requires-Dist: pydantic<3,>=2.10.6
28
- Requires-Dist: stringcase>=1.2.0
29
28
  Requires-Dist: lz4>=4.4.3
30
29
  Requires-Dist: PyJWT[crypto]>=2.10.1
31
30
  Requires-Dist: deepdiff>=8.2.0
@@ -38,21 +37,21 @@ Requires-Dist: click>=8.1.8
38
37
  Provides-Extra: web
39
38
  Provides-Extra: cli
40
39
  Provides-Extra: redis-streams
41
- Requires-Dist: hopeit.redis-streams==0.26.2; extra == "redis-streams"
40
+ Requires-Dist: hopeit.redis-streams==0.26.3; extra == "redis-streams"
42
41
  Provides-Extra: redis-storage
43
- Requires-Dist: hopeit.redis-storage==0.26.2; extra == "redis-storage"
42
+ Requires-Dist: hopeit.redis-storage==0.26.3; extra == "redis-storage"
44
43
  Provides-Extra: fs-storage
45
- Requires-Dist: hopeit.fs-storage==0.26.2; extra == "fs-storage"
44
+ Requires-Dist: hopeit.fs-storage==0.26.3; extra == "fs-storage"
46
45
  Provides-Extra: config-manager
47
- Requires-Dist: hopeit.config-manager==0.26.2; extra == "config-manager"
46
+ Requires-Dist: hopeit.config-manager==0.26.3; extra == "config-manager"
48
47
  Provides-Extra: log-streamer
49
- Requires-Dist: hopeit.log-streamer==0.26.2; extra == "log-streamer"
48
+ Requires-Dist: hopeit.log-streamer==0.26.3; extra == "log-streamer"
50
49
  Provides-Extra: apps-visualizer
51
- Requires-Dist: hopeit.apps-visualizer==0.26.2; extra == "apps-visualizer"
50
+ Requires-Dist: hopeit.apps-visualizer==0.26.3; extra == "apps-visualizer"
52
51
  Provides-Extra: apps-client
53
- Requires-Dist: hopeit.apps-client==0.26.2; extra == "apps-client"
52
+ Requires-Dist: hopeit.apps-client==0.26.3; extra == "apps-client"
54
53
  Provides-Extra: dataframes
55
- Requires-Dist: hopeit.dataframes==0.26.2; extra == "dataframes"
54
+ Requires-Dist: hopeit.dataframes==0.26.3; extra == "dataframes"
56
55
 
57
56
  ## hopeit.engine
58
57
 
@@ -6,7 +6,6 @@ dynamic = ["version", "readme"]
6
6
 
7
7
  dependencies = [
8
8
  "pydantic>=2.10.6,<3",
9
- "stringcase>=1.2.0",
10
9
  "lz4>=4.4.3",
11
10
  "PyJWT[crypto]>=2.10.1",
12
11
  "deepdiff>=8.2.0",
@@ -54,14 +53,14 @@ include-package-data = true
54
53
  [project.optional-dependencies]
55
54
  web = []
56
55
  cli = []
57
- redis-streams = ["hopeit.redis-streams==0.26.2"]
58
- redis-storage = ["hopeit.redis-storage==0.26.2"]
59
- fs-storage = ["hopeit.fs-storage==0.26.2"]
60
- config-manager = ["hopeit.config-manager==0.26.2"]
61
- log-streamer = ["hopeit.log-streamer==0.26.2"]
62
- apps-visualizer = ["hopeit.apps-visualizer==0.26.2"]
63
- apps-client = ["hopeit.apps-client==0.26.2"]
64
- dataframes = ["hopeit.dataframes==0.26.2"]
56
+ redis-streams = ["hopeit.redis-streams==0.26.3"]
57
+ redis-storage = ["hopeit.redis-storage==0.26.3"]
58
+ fs-storage = ["hopeit.fs-storage==0.26.3"]
59
+ config-manager = ["hopeit.config-manager==0.26.3"]
60
+ log-streamer = ["hopeit.log-streamer==0.26.3"]
61
+ apps-visualizer = ["hopeit.apps-visualizer==0.26.3"]
62
+ apps-client = ["hopeit.apps-client==0.26.3"]
63
+ dataframes = ["hopeit.dataframes==0.26.3"]
65
64
 
66
65
  [project.scripts]
67
66
  hopeit_server = "hopeit.cli.server:server"
@@ -446,7 +446,7 @@ class AppConfig:
446
446
  settings: AppSettings = field(default_factory=dict)
447
447
  effective_settings: Optional[AppSettings] = None
448
448
 
449
- def app_key(self):
449
+ def app_key(self) -> str:
450
450
  return self.app.app_key()
451
451
 
452
452
  def setup(self):
@@ -455,7 +455,7 @@ class AppConfig:
455
455
  self._setup_event_extra_settings()
456
456
  return self
457
457
 
458
- def _setup_streams_settings(self):
458
+ def _setup_streams_settings(self) -> None:
459
459
  """
460
460
  Prepares missing or default values for events stream configuration:
461
461
 
@@ -477,7 +477,7 @@ class AppConfig:
477
477
  settings.stream.compression = self.engine.default_stream_compression
478
478
  if settings.stream.serialization is None:
479
479
  settings.stream.serialization = self.engine.default_stream_serialization
480
- self.effective_settings[event_name] = Payload.to_obj(settings)
480
+ self.effective_settings[event_name] = Payload.to_obj(settings) # type: ignore[index, assignment]
481
481
 
482
482
  def _setup_event_extra_settings(self):
483
483
  """
@@ -23,7 +23,7 @@ import re
23
23
 
24
24
  from aiohttp import web
25
25
  from multidict import CIMultiDictProxy, MultiDict, CIMultiDict, MultiMapping, istr
26
- from stringcase import titlecase # type: ignore
26
+ from hopeit.server.names import titlecase
27
27
 
28
28
  from hopeit.app.config import (
29
29
  AppConfig,
@@ -2,24 +2,15 @@
2
2
  CLI openapi commands
3
3
  """
4
4
 
5
- import sys
6
5
  import re
7
6
 
8
- try:
9
- import click
10
- from deepdiff import DeepDiff # type: ignore
11
-
12
- from hopeit.app.config import parse_app_config_json
13
- from hopeit.server import api
14
- from hopeit.server.config import parse_server_config_json
15
- from hopeit.server.logger import engine_logger
16
- except ModuleNotFoundError:
17
- print(
18
- "ERROR: Missing dependencies."
19
- "\n To use hopeit_server command line tool"
20
- "\n install using `pip install hopeit.engine[web,cli]`"
21
- )
22
- sys.exit(1)
7
+ import click
8
+ from deepdiff import DeepDiff # type: ignore
9
+
10
+ from hopeit.app.config import parse_app_config_json
11
+ from hopeit.server import api
12
+ from hopeit.server.config import parse_server_config_json
13
+ from hopeit.server.logger import engine_logger
23
14
 
24
15
  logger = engine_logger().init_cli("openapi")
25
16
  setattr(api, "logger", logger)
@@ -2,19 +2,10 @@
2
2
  CLI server commands
3
3
  """
4
4
 
5
- import sys
6
5
  from typing import List
7
6
 
8
- try:
9
- import click
10
- from hopeit.server import wsgi
11
- except ModuleNotFoundError:
12
- print(
13
- "ERROR: Missing dependencies."
14
- "\n To use hopeit_server command line tool"
15
- "\n install using `pip install hopeit.engine[web,cli]`"
16
- )
17
- sys.exit(1)
7
+ import click
8
+ from hopeit.server import wsgi
18
9
 
19
10
 
20
11
  @click.group()
@@ -31,7 +31,7 @@ from aiohttp_swagger3.swagger_route import SwaggerRoute
31
31
  from pydantic import TypeAdapter
32
32
  from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue
33
33
  from pydantic_core import core_schema
34
- from stringcase import titlecase # type: ignore
34
+ from hopeit.server.names import titlecase
35
35
 
36
36
  from hopeit.dataobjects import BinaryAttachment, BinaryDownload
37
37
  from hopeit.app.config import (
@@ -70,6 +70,7 @@ class StreamsConfig:
70
70
  class LoggingConfig:
71
71
  log_level: str = "INFO"
72
72
  log_path: str = "logs/"
73
+ console_only: bool = False
73
74
 
74
75
 
75
76
  class AuthType(str, Enum):
@@ -10,7 +10,7 @@ from datetime import datetime
10
10
  from functools import partial
11
11
  from logging.handlers import WatchedFileHandler
12
12
  from typing import Dict, Iterable, Union, List, Tuple, Callable, Any
13
- from stringcase import snakecase # type: ignore
13
+ from hopeit.server.names import snakecase
14
14
 
15
15
  from hopeit.server import version
16
16
  from hopeit.app.config import AppDescriptor, AppConfig, EventSettings
@@ -142,9 +142,10 @@ def _setup_standard_logger(
142
142
  logger.setLevel(config.log_level)
143
143
  formatter = logging.Formatter(log_format)
144
144
  formatter.converter = time.gmtime # type: ignore
145
- file_handler = _file_handler(logger_name, formatter, config.log_path)
146
- logger.addHandler(file_handler)
147
- if config.log_level == "DEBUG":
145
+ if not config.console_only:
146
+ file_handler = _file_handler(logger_name, formatter, config.log_path)
147
+ logger.addHandler(file_handler)
148
+ if config.console_only or config.log_level == "DEBUG":
148
149
  ch = _console_handler(logger_name, formatter)
149
150
  logger.addHandler(ch)
150
151
  return logger
@@ -4,8 +4,6 @@ Convenience methods to normalize endpoint names, module names from configuration
4
4
 
5
5
  import re
6
6
 
7
- from stringcase import spinalcase, snakecase # type: ignore
8
-
9
7
  __all__ = ["route_name", "module_name", "auto_path", "auto_path_prefixed"]
10
8
 
11
9
 
@@ -23,3 +21,27 @@ def auto_path(*args: str) -> str:
23
21
 
24
22
  def auto_path_prefixed(prefix, *args: str) -> str:
25
23
  return ".".join([prefix, *(snakecase(re.sub("\\.", "x", name)) for name in args)])
24
+
25
+
26
+ def snakecase(string: str) -> str:
27
+ """Convert string into snake_case."""
28
+
29
+ def convert_word(matched) -> str:
30
+ return "_" + matched.group(0).lower()
31
+
32
+ if not string:
33
+ return string
34
+ string = re.sub(r"[\-\.\s]", "_", string)
35
+ return string[0].lower() + re.sub(r"[A-Z]", convert_word, string[1:])
36
+
37
+
38
+ def spinalcase(string: str) -> str:
39
+ """Convert string into spinal-case."""
40
+ return snakecase(string).replace("_", "-")
41
+
42
+
43
+ def titlecase(string: str) -> str:
44
+ """Convert string into Title Case."""
45
+ if not string:
46
+ return string
47
+ return " ".join([word[0].upper() + word[1:] for word in snakecase(string).split("_")])
@@ -9,7 +9,7 @@ import os
9
9
  import sys
10
10
 
11
11
  ENGINE_NAME = "hopeit.engine"
12
- ENGINE_VERSION = "0.26.2"
12
+ ENGINE_VERSION = "0.26.3"
13
13
 
14
14
  # Major.Minor version to be used in App versions and Api endpoints for Apps/Plugins
15
15
  APPS_API_VERSION = ".".join(ENGINE_VERSION.split(".")[0:2])
@@ -59,7 +59,7 @@ from hopeit.server.names import route_name
59
59
  from hopeit.server.steps import find_datatype_handler
60
60
  from hopeit.toolkit import auth
61
61
 
62
- from stringcase import snakecase, titlecase # type: ignore
62
+ from hopeit.server.names import snakecase, titlecase
63
63
 
64
64
  __all__ = [
65
65
  "parse_args",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hopeit.engine
3
- Version: 0.26.2
3
+ Version: 0.26.3
4
4
  Summary: Hopeit Engine: Microservices with Streams
5
5
  Author-email: Leo Smerling & Pablo Canto <contact@hopeit.com.ar>, Leo Smerling <contact@hopeit.com.ar>, Pablo Canto <contact@hopeit.com.ar>
6
6
  License: Apache 2
@@ -25,7 +25,6 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
25
  Classifier: Framework :: AsyncIO
26
26
  Description-Content-Type: text/markdown
27
27
  Requires-Dist: pydantic<3,>=2.10.6
28
- Requires-Dist: stringcase>=1.2.0
29
28
  Requires-Dist: lz4>=4.4.3
30
29
  Requires-Dist: PyJWT[crypto]>=2.10.1
31
30
  Requires-Dist: deepdiff>=8.2.0
@@ -38,21 +37,21 @@ Requires-Dist: click>=8.1.8
38
37
  Provides-Extra: web
39
38
  Provides-Extra: cli
40
39
  Provides-Extra: redis-streams
41
- Requires-Dist: hopeit.redis-streams==0.26.2; extra == "redis-streams"
40
+ Requires-Dist: hopeit.redis-streams==0.26.3; extra == "redis-streams"
42
41
  Provides-Extra: redis-storage
43
- Requires-Dist: hopeit.redis-storage==0.26.2; extra == "redis-storage"
42
+ Requires-Dist: hopeit.redis-storage==0.26.3; extra == "redis-storage"
44
43
  Provides-Extra: fs-storage
45
- Requires-Dist: hopeit.fs-storage==0.26.2; extra == "fs-storage"
44
+ Requires-Dist: hopeit.fs-storage==0.26.3; extra == "fs-storage"
46
45
  Provides-Extra: config-manager
47
- Requires-Dist: hopeit.config-manager==0.26.2; extra == "config-manager"
46
+ Requires-Dist: hopeit.config-manager==0.26.3; extra == "config-manager"
48
47
  Provides-Extra: log-streamer
49
- Requires-Dist: hopeit.log-streamer==0.26.2; extra == "log-streamer"
48
+ Requires-Dist: hopeit.log-streamer==0.26.3; extra == "log-streamer"
50
49
  Provides-Extra: apps-visualizer
51
- Requires-Dist: hopeit.apps-visualizer==0.26.2; extra == "apps-visualizer"
50
+ Requires-Dist: hopeit.apps-visualizer==0.26.3; extra == "apps-visualizer"
52
51
  Provides-Extra: apps-client
53
- Requires-Dist: hopeit.apps-client==0.26.2; extra == "apps-client"
52
+ Requires-Dist: hopeit.apps-client==0.26.3; extra == "apps-client"
54
53
  Provides-Extra: dataframes
55
- Requires-Dist: hopeit.dataframes==0.26.2; extra == "dataframes"
54
+ Requires-Dist: hopeit.dataframes==0.26.3; extra == "dataframes"
56
55
 
57
56
  ## hopeit.engine
58
57
 
@@ -1,5 +1,4 @@
1
1
  pydantic<3,>=2.10.6
2
- stringcase>=1.2.0
3
2
  lz4>=4.4.3
4
3
  PyJWT[crypto]>=2.10.1
5
4
  deepdiff>=8.2.0
@@ -11,29 +10,29 @@ gunicorn>=23.0.0
11
10
  click>=8.1.8
12
11
 
13
12
  [apps-client]
14
- hopeit.apps-client==0.26.2
13
+ hopeit.apps-client==0.26.3
15
14
 
16
15
  [apps-visualizer]
17
- hopeit.apps-visualizer==0.26.2
16
+ hopeit.apps-visualizer==0.26.3
18
17
 
19
18
  [cli]
20
19
 
21
20
  [config-manager]
22
- hopeit.config-manager==0.26.2
21
+ hopeit.config-manager==0.26.3
23
22
 
24
23
  [dataframes]
25
- hopeit.dataframes==0.26.2
24
+ hopeit.dataframes==0.26.3
26
25
 
27
26
  [fs-storage]
28
- hopeit.fs-storage==0.26.2
27
+ hopeit.fs-storage==0.26.3
29
28
 
30
29
  [log-streamer]
31
- hopeit.log-streamer==0.26.2
30
+ hopeit.log-streamer==0.26.3
32
31
 
33
32
  [redis-storage]
34
- hopeit.redis-storage==0.26.2
33
+ hopeit.redis-storage==0.26.3
35
34
 
36
35
  [redis-streams]
37
- hopeit.redis-streams==0.26.2
36
+ hopeit.redis-streams==0.26.3
38
37
 
39
38
  [web]
File without changes
File without changes