omserv 0.0.0.dev188__tar.gz → 0.0.0.dev190__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. {omserv-0.0.0.dev188/omserv.egg-info → omserv-0.0.0.dev190}/PKG-INFO +2 -2
  2. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/build.py +4 -0
  3. omserv-0.0.0.dev190/omserv/nginx/configs.py +76 -0
  4. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190/omserv.egg-info}/PKG-INFO +2 -2
  5. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv.egg-info/SOURCES.txt +4 -4
  6. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv.egg-info/requires.txt +1 -1
  7. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/pyproject.toml +2 -2
  8. omserv-0.0.0.dev188/omserv/nginx/configs.py +0 -86
  9. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/LICENSE +0 -0
  10. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/MANIFEST.in +0 -0
  11. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/README.rst +0 -0
  12. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/.manifests.json +0 -0
  13. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/__about__.py +0 -0
  14. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/__init__.py +0 -0
  15. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/__init__.py +0 -0
  16. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/base.py +0 -0
  17. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/inject.py +0 -0
  18. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/markers.py +0 -0
  19. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/routes.py +0 -0
  20. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/sessions.py +0 -0
  21. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/apps/templates.py +0 -0
  22. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/daemon/__init__.py +0 -0
  23. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/__init__.py +0 -0
  24. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/logs.py +0 -0
  25. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/patches/__init__.py +0 -0
  26. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/patches/nginx-1.27.3_http_status.patch +0 -0
  27. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/nginx/stubstatus.py +0 -0
  28. {omserv-0.0.0.dev188/omserv/node → omserv-0.0.0.dev190/omserv/nodes}/__init__.py +0 -0
  29. {omserv-0.0.0.dev188/omserv/node → omserv-0.0.0.dev190/omserv/nodes}/models.py +0 -0
  30. {omserv-0.0.0.dev188/omserv/node → omserv-0.0.0.dev190/omserv/nodes}/registry.py +0 -0
  31. {omserv-0.0.0.dev188/omserv/node → omserv-0.0.0.dev190/omserv/nodes}/sql.py +0 -0
  32. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/LICENSE +0 -0
  33. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/__init__.py +0 -0
  34. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/config.py +0 -0
  35. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/debug.py +0 -0
  36. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/default.py +0 -0
  37. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/events.py +0 -0
  38. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/headers.py +0 -0
  39. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/inject.py +0 -0
  40. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/lifespans.py +0 -0
  41. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/listener.py +0 -0
  42. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/multiprocess.py +0 -0
  43. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/protocols/__init__.py +0 -0
  44. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/protocols/h11.py +0 -0
  45. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/protocols/h2.py +0 -0
  46. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/protocols/protocols.py +0 -0
  47. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/protocols/types.py +0 -0
  48. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/resources/__init__.py +0 -0
  49. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/resources/favicon.ico +0 -0
  50. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/server.py +0 -0
  51. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/sockets.py +0 -0
  52. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/ssl.py +0 -0
  53. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/streams/__init__.py +0 -0
  54. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/streams/httpstream.py +0 -0
  55. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/streams/utils.py +0 -0
  56. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/streams/wsstream.py +0 -0
  57. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/taskspawner.py +0 -0
  58. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/types.py +0 -0
  59. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv/server/workercontext.py +0 -0
  60. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv.egg-info/dependency_links.txt +0 -0
  61. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv.egg-info/entry_points.txt +0 -0
  62. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/omserv.egg-info/top_level.txt +0 -0
  63. {omserv-0.0.0.dev188 → omserv-0.0.0.dev190}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omserv
3
- Version: 0.0.0.dev188
3
+ Version: 0.0.0.dev190
4
4
  Summary: omserv
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev188
15
+ Requires-Dist: omlish==0.0.0.dev190
16
16
  Provides-Extra: all
17
17
  Requires-Dist: h11~=0.14; extra == "all"
18
18
  Requires-Dist: h2~=4.1; extra == "all"
@@ -1,3 +1,7 @@
1
+ """
2
+ TODO:
3
+ - https://github.com/webserver-llc/angie ?
4
+ """
1
5
  import multiprocessing as mp
2
6
  import os.path
3
7
  import shutil
@@ -0,0 +1,76 @@
1
+ # ruff: noqa: UP006 UP007
2
+ # @omlish-lite
3
+ """
4
+ TODO:
5
+ - omnibus/jmespath
6
+
7
+ https://nginx.org/en/docs/dev/development_guide.html
8
+ https://nginx.org/en/docs/dev/development_guide.html#config_directives
9
+ https://nginx.org/en/docs/example.html
10
+
11
+ https://github.com/yandex/gixy
12
+ """
13
+ import collections.abc
14
+ import dataclasses as dc
15
+ import typing as ta
16
+
17
+ from omlish.lite.check import check
18
+ from omlish.text.indent import IndentWriter
19
+
20
+
21
+ @dc.dataclass()
22
+ class NginxConfigItems:
23
+ lst: ta.List['NginxConfigItem']
24
+
25
+ @classmethod
26
+ def of(cls, obj: ta.Any) -> 'NginxConfigItems':
27
+ if isinstance(obj, NginxConfigItems):
28
+ return obj
29
+ return cls([NginxConfigItem.of(e) for e in check.isinstance(obj, list)])
30
+
31
+
32
+ @dc.dataclass()
33
+ class NginxConfigItem:
34
+ name: str
35
+ args: ta.Optional[ta.List[str]] = None
36
+ block: ta.Optional[NginxConfigItems] = None
37
+
38
+ @classmethod
39
+ def of(cls, obj: ta.Any) -> 'NginxConfigItem':
40
+ if isinstance(obj, NginxConfigItem):
41
+ return obj
42
+ args = check.isinstance(check.not_isinstance(obj, str), collections.abc.Sequence)
43
+ name, args = check.isinstance(args[0], str), args[1:]
44
+ if args and not isinstance(args[-1], str):
45
+ block, args = NginxConfigItems.of(args[-1]), args[:-1]
46
+ else:
47
+ block = None
48
+ return NginxConfigItem(name, [check.isinstance(e, str) for e in args], block=block)
49
+
50
+
51
+ def render_nginx_config(wr: IndentWriter, obj: ta.Any) -> None:
52
+ if isinstance(obj, NginxConfigItem):
53
+ wr.write(obj.name)
54
+ for e in obj.args or ():
55
+ wr.write(' ')
56
+ wr.write(e)
57
+ if obj.block:
58
+ wr.write(' {\n')
59
+ with wr.indent():
60
+ render_nginx_config(wr, obj.block)
61
+ wr.write('}\n')
62
+ else:
63
+ wr.write(';\n')
64
+
65
+ elif isinstance(obj, NginxConfigItems):
66
+ for e2 in obj.lst:
67
+ render_nginx_config(wr, e2)
68
+
69
+ else:
70
+ raise TypeError(obj)
71
+
72
+
73
+ def render_nginx_config_str(obj: ta.Any) -> str:
74
+ iw = IndentWriter()
75
+ render_nginx_config(iw, obj)
76
+ return iw.getvalue()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omserv
3
- Version: 0.0.0.dev188
3
+ Version: 0.0.0.dev190
4
4
  Summary: omserv
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev188
15
+ Requires-Dist: omlish==0.0.0.dev190
16
16
  Provides-Extra: all
17
17
  Requires-Dist: h11~=0.14; extra == "all"
18
18
  Requires-Dist: h2~=4.1; extra == "all"
@@ -26,10 +26,10 @@ omserv/nginx/logs.py
26
26
  omserv/nginx/stubstatus.py
27
27
  omserv/nginx/patches/__init__.py
28
28
  omserv/nginx/patches/nginx-1.27.3_http_status.patch
29
- omserv/node/__init__.py
30
- omserv/node/models.py
31
- omserv/node/registry.py
32
- omserv/node/sql.py
29
+ omserv/nodes/__init__.py
30
+ omserv/nodes/models.py
31
+ omserv/nodes/registry.py
32
+ omserv/nodes/sql.py
33
33
  omserv/server/LICENSE
34
34
  omserv/server/__init__.py
35
35
  omserv/server/config.py
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev188
1
+ omlish==0.0.0.dev190
2
2
 
3
3
  [all]
4
4
  h11~=0.14
@@ -12,7 +12,7 @@ authors = [
12
12
  urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = {text = 'BSD-3-Clause'}
14
14
  requires-python = '>=3.12'
15
- version = '0.0.0.dev188'
15
+ version = '0.0.0.dev190'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -22,7 +22,7 @@ classifiers = [
22
22
  ]
23
23
  description = 'omserv'
24
24
  dependencies = [
25
- 'omlish == 0.0.0.dev188',
25
+ 'omlish == 0.0.0.dev190',
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
@@ -1,86 +0,0 @@
1
- """
2
- TODO:
3
- - omnibus/jmespath
4
-
5
- https://nginx.org/en/docs/dev/development_guide.html
6
- https://nginx.org/en/docs/dev/development_guide.html#config_directives
7
- https://nginx.org/en/docs/example.html
8
-
9
- https://github.com/yandex/gixy
10
- """
11
- import dataclasses as dc
12
- import typing as ta
13
-
14
- from omlish import check
15
- from omlish import lang
16
- from omlish.text.indent import IndentWriter
17
-
18
-
19
- @dc.dataclass()
20
- class Items(lang.Final):
21
- lst: list['Item']
22
-
23
- @classmethod
24
- def of(cls, obj: ta.Any) -> 'Items':
25
- if isinstance(obj, Items):
26
- return obj
27
- return cls([Item.of(e) for e in check.isinstance(obj, list)])
28
-
29
-
30
- @dc.dataclass()
31
- class Item(lang.Final):
32
- name: str
33
- args: list[str] | None = None
34
- block: Items | None = None
35
-
36
- @classmethod
37
- def of(cls, obj: ta.Any) -> 'Item':
38
- if isinstance(obj, Item):
39
- return obj
40
- args = check.isinstance(obj, tuple)
41
- name, args = check.isinstance(args[0], str), args[1:]
42
- if args and not isinstance(args[-1], str):
43
- block, args = Items.of(args[-1]), args[:-1]
44
- else:
45
- block = None
46
- return Item(name, [check.isinstance(e, str) for e in args], block=block)
47
-
48
-
49
- def render(wr: IndentWriter, obj: ta.Any) -> None:
50
- if isinstance(obj, Item):
51
- wr.write(obj.name)
52
- for e in obj.args or ():
53
- wr.write(' ')
54
- wr.write(e)
55
- if obj.block:
56
- wr.write(' {\n')
57
- with wr.indent():
58
- render(wr, obj.block)
59
- wr.write('}\n')
60
- else:
61
- wr.write(';\n')
62
-
63
- elif isinstance(obj, Items):
64
- for e2 in obj.lst:
65
- render(wr, e2)
66
-
67
- else:
68
- raise TypeError(obj)
69
-
70
-
71
- def _main() -> None:
72
- conf = Items.of([
73
- ('user', 'www', 'www'),
74
- ('worker_processes', '2'),
75
- ('events', [
76
- ('worker_connections', '2000'),
77
- ]),
78
- ])
79
-
80
- wr = IndentWriter()
81
- render(wr, conf)
82
- print(wr.getvalue())
83
-
84
-
85
- if __name__ == '__main__':
86
- _main()
File without changes
File without changes
File without changes
File without changes