log-foundry 0.10.2.dev116__tar.gz → 0.10.2.dev118__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 (59) hide show
  1. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/PKG-INFO +1 -1
  2. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/pyproject.toml +11 -7
  3. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/worker.py +8 -3
  4. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/LICENSE +0 -0
  5. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/README.md +0 -0
  6. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/__init__.py +0 -0
  7. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/_diag.py +0 -0
  8. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/_fork.py +0 -0
  9. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/_lifecycle.py +0 -0
  10. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/api.py +0 -0
  11. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/config.py +0 -0
  12. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/console.py +0 -0
  13. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/context.py +0 -0
  14. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/decorator.py +0 -0
  15. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/ids.py +0 -0
  16. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/model.py +0 -0
  17. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/py.typed +0 -0
  18. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/results.py +0 -0
  19. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sanitize.py +0 -0
  20. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/__init__.py +0 -0
  21. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/_batch.py +0 -0
  22. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/_chunk.py +0 -0
  23. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/_retry.py +0 -0
  24. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/_socket.py +0 -0
  25. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/_time.py +0 -0
  26. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/base.py +0 -0
  27. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/callback.py +0 -0
  28. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/clickhouse.py +0 -0
  29. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/datadog.py +0 -0
  30. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/elasticsearch.py +0 -0
  31. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/eventhubs.py +0 -0
  32. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/file.py +0 -0
  33. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/filtering.py +0 -0
  34. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/firehose.py +0 -0
  35. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/honeycomb.py +0 -0
  36. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/http.py +0 -0
  37. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/kafka.py +0 -0
  38. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/kinesis.py +0 -0
  39. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/logging_sink.py +0 -0
  40. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/logstash.py +0 -0
  41. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/loki.py +0 -0
  42. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/memory.py +0 -0
  43. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/mongodb.py +0 -0
  44. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/multi.py +0 -0
  45. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/nats.py +0 -0
  46. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/newrelic.py +0 -0
  47. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/null.py +0 -0
  48. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/postgres.py +0 -0
  49. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/pubsub.py +0 -0
  50. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/rabbitmq.py +0 -0
  51. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/redis.py +0 -0
  52. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/sentry.py +0 -0
  53. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/sns.py +0 -0
  54. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/splunk.py +0 -0
  55. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/sqlite.py +0 -0
  56. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/sqs.py +0 -0
  57. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/stdout.py +0 -0
  58. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/syslog.py +0 -0
  59. {log_foundry-0.10.2.dev116 → log_foundry-0.10.2.dev118}/src/log_foundry/sinks/transform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: log-foundry
3
- Version: 0.10.2.dev116
3
+ Version: 0.10.2.dev118
4
4
  Summary: Generate logs for your console and JSON events for downstream consumption.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -74,7 +74,7 @@ keywords = [
74
74
  # vulnerability-reporting channel. The repository is still named `log-forge` — the ORIGINAL name,
75
75
  # which PyPI rejected for the distribution — so these URLs deliberately do not match the package
76
76
  # name. See the note on `name` above before "correcting" them.
77
- version = "0.10.2.dev116"
77
+ version = "0.10.2.dev118"
78
78
 
79
79
  [project.urls]
80
80
  Homepage = "https://github.com/agriffi10/log-forge"
@@ -127,12 +127,13 @@ exclude = [
127
127
  pytest = "^9.0"
128
128
  pytest-asyncio = "^1.4.0" # for testing async @trace (guide Phase 8)
129
129
  pytest-cov = "^7.1.0"
130
- # The suite is sleep-bound, not CPU-bound: 1,871 tests spend ~116 s of wall clock at 7%
130
+ # The suite is sleep-bound, not CPU-bound: it spends most of its wall clock at single-digit
131
131
  # CPU, because the bounds this library promises (a 30 s shutdown budget, a backoff, a
132
132
  # wedged drain) are proved by waiting for them. Two tests block 30 s each. Distributing
133
- # across processes therefore buys almost the whole wall clock back — measured 125.9 s ->
134
- # 34.8 s at `-n 12 --dist worksteal` — where caching the dependency install could only ever
135
- # save the 18 s that install takes.
133
+ # across processes therefore buys almost the whole wall clock back — measured at `e565e22`
134
+ # as 125.9 s -> 34.8 s at `-n 12 --dist worksteal`, where caching the dependency install
135
+ # could only ever save the 18 s that install takes. The test count that stood here is gone:
136
+ # it moved with every spec, and the argument never rested on it.
136
137
  pytest-xdist = "^3.8"
137
138
  # Bounded to a minor, not left open. Ruff's DEFAULT rule set is not stable across minors —
138
139
  # 0.16.0 widened it from 59 rules to 413 — so an open constraint lets a release change what
@@ -230,8 +231,11 @@ select = [
230
231
  "F", # pyflakes
231
232
  "E4", "E7", "E9", # pycodestyle errors. NOT E5: `line-length` above is advisory
232
233
  # today (it feeds `ruff format`, which this repo does not run) and
233
- # 52 lines in src+tests exceed it. Enforcing it is 52 reflows and
234
- # its own decision.
234
+ # enough lines in src+tests exceed it that enforcing it is a reflow
235
+ # sweep, which is its own decision. No count here on purpose: the one
236
+ # this comment carried was 52, and `3c973b9` measured 86. Get the
237
+ # current cost from
238
+ # `ruff check --select E5 --statistics src tests` before deciding.
235
239
  "W",
236
240
  "I", # import sorting
237
241
  "B", # bugbear
@@ -905,9 +905,14 @@ class Worker:
905
905
  state the caller is being told about either way, and it bounds only the slice — a negative
906
906
  or zero remainder clamps to an immediate attempt rather than raising, where ``Queue.put``
907
907
  rejects a negative timeout before it even looks at capacity. That makes the **put** total,
908
- which is what ``Raises: None`` said all along; the *wait* below is unchanged and a timeout
909
- large enough to overflow ``time_t`` still raises out of it, on this tree and on every
910
- earlier one.
908
+ which is what ``Raises: None`` said all along. That raise was never *public*, on two separate
909
+ counts: ``Worker`` is not exported, so this is not a public call, and
910
+ ``_lifecycle._flush_worker``'s bare ``except Exception`` caught that ``ValueError`` and reported
911
+ ``"thread-died"`` on a live thread with ``stopped_reason`` at ``None``, so what a caller
912
+ sees change is the token, not an exception. The *wait* below is unchanged and a timeout
913
+ large enough to overflow ``time_t`` still raises out of **this** method, on this tree and
914
+ every earlier one — and is caught by that same ``except Exception`` before a public caller
915
+ sees it, exactly as the ``ValueError`` was. The distinction drawn above holds there too.
911
916
 
912
917
  Args:
913
918
  marker: The marker to enqueue.