omserv 0.0.0.dev30__py3-none-any.whl → 0.0.0.dev32__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.
omserv/nginx/build.py CHANGED
@@ -1,4 +1,4 @@
1
- import multiprocessing
1
+ import multiprocessing as mp
2
2
  import os.path
3
3
  import shutil
4
4
  import subprocess
@@ -102,7 +102,7 @@ def build_nginx() -> None:
102
102
 
103
103
  #
104
104
 
105
- make_jobs = max(multiprocessing.cpu_count() // 2, 1)
105
+ make_jobs = max(mp.cpu_count() // 2, 1)
106
106
  subprocess.check_call([
107
107
  'make',
108
108
  f'-j{make_jobs}',
omserv/server/__init__.py CHANGED
@@ -9,7 +9,7 @@ TODO:
9
9
  - lifecycle / otp-ify
10
10
  - configify
11
11
 
12
- Lookit:
12
+ See:
13
13
  - https://github.com/davidbrochart/anycorn
14
14
  - https://github.com/encode/starlette
15
15
  - https://github.com/tiangolo/fastapi
@@ -1,5 +1,5 @@
1
1
  import functools
2
- import multiprocessing
2
+ import multiprocessing as mp
3
3
  import multiprocessing.connection
4
4
  import multiprocessing.context
5
5
  import multiprocessing.synchronize
@@ -20,7 +20,7 @@ from .workers import serve
20
20
 
21
21
 
22
22
  async def check_multiprocess_shutdown_event(
23
- shutdown_event: multiprocessing.synchronize.Event,
23
+ shutdown_event: mp.synchronize.Event,
24
24
  sleep: ta.Callable[[float], ta.Awaitable[ta.Any]],
25
25
  ) -> None:
26
26
  while True:
@@ -33,7 +33,7 @@ def _multiprocess_serve(
33
33
  app: AsgiFramework,
34
34
  config: Config,
35
35
  sockets: Sockets | None = None,
36
- shutdown_event: multiprocessing.synchronize.Event | None = None,
36
+ shutdown_event: mp.synchronize.Event | None = None,
37
37
  ) -> None:
38
38
  if sockets is not None:
39
39
  for sock in sockets.insecure_sockets:
@@ -62,7 +62,7 @@ def serve_multiprocess(
62
62
  sockets = create_sockets(config)
63
63
 
64
64
  exitcode = 0
65
- ctx = multiprocessing.get_context('spawn')
65
+ ctx = mp.get_context('spawn')
66
66
 
67
67
  active = True
68
68
  shutdown_event = ctx.Event()
@@ -72,7 +72,7 @@ def serve_multiprocess(
72
72
  shutdown_event.set()
73
73
  active = False
74
74
 
75
- processes: list[multiprocessing.Process] = []
75
+ processes: list[mp.Process] = []
76
76
  while active:
77
77
  # Ignore SIGINT before creating the processes, so that they inherit the signal handling. This means that the
78
78
  # shutdown function controls the shutdown.
@@ -92,7 +92,7 @@ def serve_multiprocess(
92
92
  if hasattr(signal, signal_name):
93
93
  signal.signal(getattr(signal, signal_name), shutdown)
94
94
 
95
- multiprocessing.connection.wait(process.sentinel for process in processes)
95
+ mp.connection.wait(process.sentinel for process in processes)
96
96
 
97
97
  exitcode = _join_exited(processes)
98
98
  if exitcode != 0:
@@ -111,17 +111,17 @@ def serve_multiprocess(
111
111
 
112
112
 
113
113
  def _populate(
114
- processes: list[multiprocessing.Process],
114
+ processes: list[mp.Process],
115
115
  app: AsgiFramework,
116
116
  config: Config,
117
117
  worker_func: ta.Callable,
118
118
  sockets: Sockets,
119
- shutdown_event: multiprocessing.synchronize.Event,
120
- ctx: multiprocessing.context.BaseContext,
119
+ shutdown_event: mp.synchronize.Event,
120
+ ctx: mp.context.BaseContext,
121
121
  ) -> None:
122
122
  num_workers = config.workers or 1
123
123
  if num_workers < 0:
124
- num_workers = multiprocessing.cpu_count()
124
+ num_workers = mp.cpu_count()
125
125
  for _ in range(num_workers - len(processes)):
126
126
  process = ctx.Process( # type: ignore
127
127
  target=worker_func,
@@ -145,7 +145,7 @@ def _populate(
145
145
  time.sleep(0.1)
146
146
 
147
147
 
148
- def _join_exited(processes: list[multiprocessing.Process]) -> int:
148
+ def _join_exited(processes: list[mp.Process]) -> int:
149
149
  exitcode = 0
150
150
  for index in reversed(range(len(processes))):
151
151
  worker = processes[index]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omserv
3
- Version: 0.0.0.dev30
3
+ Version: 0.0.0.dev32
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.dev30
15
+ Requires-Dist: omlish ==0.0.0.dev32
16
16
  Provides-Extra: all
17
17
  Requires-Dist: h11 ~=0.14 ; extra == 'all'
18
18
  Requires-Dist: h2 ~=4.1 ; extra == 'all'
@@ -1,8 +1,6 @@
1
1
  omserv/.manifests.json,sha256=N1F-Xz3GaBn2H1p7uKzhkhKCQV8QVR0t76XD6wmFtXA,3
2
2
  omserv/__about__.py,sha256=Jq3euIDPxnlPJtzRKXwdeUuDLrKJOYurvsYAOieXVKQ,695
3
3
  omserv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- omserv/dbs.py,sha256=RLXwNmENmM9MLsjFqDho_R8ibMjOKAxWUn4zhzTlP9Y,756
5
- omserv/secrets.py,sha256=ja0VsCB01MHxYwn5OHjFeXV9cRah9AQl-0uJzZELpic,256
6
4
  omserv/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
5
  omserv/apps/base.py,sha256=KSwxbC0_fY87_DucvpEOHG6gZ2wL78D-N3We8RTEU4Q,385
8
6
  omserv/apps/inject.py,sha256=xtcn-C3A4yCdHfnAaejxrC_UGMVBYmWtSxeESIkorP0,2697
@@ -11,7 +9,7 @@ omserv/apps/routes.py,sha256=shcN8qCSF2YoKal7nk-lemCAK3RX8MuHgNHhq_CTnh0,3762
11
9
  omserv/apps/sessions.py,sha256=glruQSbOSbCYLPp6nDRNSHCyp5hj4oiOPhh3R0F9BTM,1537
12
10
  omserv/apps/templates.py,sha256=PBRZHIF9UbnFnq-4EC6RmPeRkeH8lCBbpJkSdseHs6A,2125
13
11
  omserv/nginx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- omserv/nginx/build.py,sha256=NsDZKUJwxkcWeMbmg4Qtcz3nAVFfex_g4RazZOzF1u4,3152
12
+ omserv/nginx/build.py,sha256=zt7e7Jt4R3Nfq-aosBgChdbK0O85oKIOBJmnupsk27o,3145
15
13
  omserv/nginx/configs.py,sha256=4oQDcKJKIatRG621qiZCYTayJI3-vv63TtRCiUxEVWI,2008
16
14
  omserv/nginx/stubstatus.py,sha256=_VnXZdXxSA7jIelYSwJLf9mOnt_UOvpWghAPWtlWSLw,1857
17
15
  omserv/nginx/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -21,13 +19,13 @@ omserv/node/models.py,sha256=EOaq-aW1rbGOzHTmTULhbVwV5j_burL07qh2QO9smdM,1273
21
19
  omserv/node/registry.py,sha256=y-2I0TDriNORuOGLJshhPlzp820YEL-bDmGa1Xrs_E4,3474
22
20
  omserv/node/sql.py,sha256=vy7RP50JiH3jQHMVa7Hxk0pFJK3QcbGeTvyNppB1W4I,2826
23
21
  omserv/server/LICENSE,sha256=VKPNmbyrS9wcwcx20hBlVtLP01brb2dByHrWHeNLPag,1050
24
- omserv/server/__init__.py,sha256=K8l4nfv9c_5o8dph-SyadW_19CdTC2FGlikyHMU5lAU,375
22
+ omserv/server/__init__.py,sha256=7c9pUvoC-3lByJeGoQfAcp78JCZ9oA5wP0Bzpm87D7Y,372
25
23
  omserv/server/config.py,sha256=oGWL1kuk45bJ6sVr8n3ow5Q-1nz9EqByjoykU2iOHIY,1189
26
24
  omserv/server/debug.py,sha256=N7RI0Jj-ttmys3DJD0RREmGG5XZpTCp6y9Yu0x98Agg,299
27
25
  omserv/server/events.py,sha256=VMr_rArsVjJYnyH9SqLWtOLUg18vSu1O0ep9gNBGR_c,1369
28
26
  omserv/server/headers.py,sha256=3H-NxMMQg5WuF5wF4AWFUEqkToh4NqNqHouavzbOQok,1188
29
27
  omserv/server/lifespans.py,sha256=kRVxDQM18jCBzRUpafyb69q_bGSCyxxjAtrkxjqcZdE,4607
30
- omserv/server/multiprocess.py,sha256=xEQ4Na-Nej3oO_cxvYmQ1vEKtuLJNirrfRRMeKTxtVo,4377
28
+ omserv/server/multiprocess.py,sha256=jKmQzj_Nrwxw2mM-Tf3XVf6vPYMbfyCkPOUWVe028Q8,4253
31
29
  omserv/server/sockets.py,sha256=lwqNP7URlp605ibsjHzp0pc-lyjcyTu-hD-uyojLUYk,3389
32
30
  omserv/server/ssl.py,sha256=gmB5ecM8Mck-YtGYF8pb2dwFdjABVGzERFCDzM9lBck,1483
33
31
  omserv/server/taskspawner.py,sha256=ljzF26UPtnp7GLAY_BvjzuwCoCO9aL7TKLwRNTmUy1M,3008
@@ -46,8 +44,8 @@ omserv/server/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
46
44
  omserv/server/streams/httpstream.py,sha256=0DeiAPLGbEGNa0fHTs8lUpi_CFZs4M5_QB-TiS8mobQ,8015
47
45
  omserv/server/streams/utils.py,sha256=aMOrqWIg_Hht5W4kLg3y7oR5AEkVvMrZhyjzo6U5owE,1527
48
46
  omserv/server/streams/wsstream.py,sha256=3Vyzox7dCE1tDSXjb6xBubWo41ZF9d38Hrsrlj6h1J8,15482
49
- omserv-0.0.0.dev30.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
50
- omserv-0.0.0.dev30.dist-info/METADATA,sha256=zkqiC2MgnzdR1-F4oaUsLOdgX19obBj4O1_NMgKuutY,1003
51
- omserv-0.0.0.dev30.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
52
- omserv-0.0.0.dev30.dist-info/top_level.txt,sha256=HXehpnxeKscKNULzKNzZ27oNawBrsh1PaNAirbX-XNA,7
53
- omserv-0.0.0.dev30.dist-info/RECORD,,
47
+ omserv-0.0.0.dev32.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
48
+ omserv-0.0.0.dev32.dist-info/METADATA,sha256=NfCHbWwNOp5cdTjupmywRkTPR5C24A9dKWainMLjVQs,1003
49
+ omserv-0.0.0.dev32.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
50
+ omserv-0.0.0.dev32.dist-info/top_level.txt,sha256=HXehpnxeKscKNULzKNzZ27oNawBrsh1PaNAirbX-XNA,7
51
+ omserv-0.0.0.dev32.dist-info/RECORD,,
omserv/dbs.py DELETED
@@ -1,24 +0,0 @@
1
- import os
2
-
3
- from .secrets import load_secrets # noqa
4
-
5
-
6
- def get_secret_db_url() -> str:
7
- cfg = load_secrets()
8
- return f'postgresql+asyncpg://{cfg["postgres_user"]}:{cfg["postgres_pass"]}@{cfg["postgres_host"]}:5432'
9
-
10
-
11
- def get_docker_db_url() -> str:
12
- from omlish import docker
13
- cc = docker.ComposeConfig('omlish-', file_path='docker/compose.yml')
14
- svc = cc.get_services()['postgres']
15
- port = docker.get_compose_port(svc, 5432)
16
- env = svc['environment']
17
- return f'postgresql+asyncpg://{env["POSTGRES_USER"]}:{env["POSTGRES_PASSWORD"]}@127.0.0.1:{port}'
18
-
19
-
20
- def get_db_url() -> str:
21
- if os.environ.get('PROD', '').lower() in ('1', 'true'): # FIXME: lol
22
- return get_secret_db_url()
23
- else:
24
- return get_docker_db_url()
omserv/secrets.py DELETED
@@ -1,12 +0,0 @@
1
- import os.path
2
- import typing as ta
3
-
4
- import yaml
5
-
6
-
7
- SECRETS_PATH = os.getenv('SECRETS_PATH', os.path.expanduser('~/Dropbox/.dotfiles/secrets.yml'))
8
-
9
-
10
- def load_secrets() -> dict[str, ta.Any]:
11
- with open(SECRETS_PATH) as f:
12
- return yaml.safe_load(f)