amber-lang 2.9.0__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 (109) hide show
  1. amber_lang-2.9.0/CHANGELOG.md +53 -0
  2. amber_lang-2.9.0/LICENSE +661 -0
  3. amber_lang-2.9.0/MANIFEST.in +25 -0
  4. amber_lang-2.9.0/NOTICE +14 -0
  5. amber_lang-2.9.0/PKG-INFO +470 -0
  6. amber_lang-2.9.0/README.md +412 -0
  7. amber_lang-2.9.0/examples/quickstart.py +55 -0
  8. amber_lang-2.9.0/include/amber_capi.h +152 -0
  9. amber_lang-2.9.0/pyproject.toml +83 -0
  10. amber_lang-2.9.0/scripts/build_wheel.sh +58 -0
  11. amber_lang-2.9.0/scripts/vendor_engine.sh +33 -0
  12. amber_lang-2.9.0/setup.cfg +4 -0
  13. amber_lang-2.9.0/setup.py +213 -0
  14. amber_lang-2.9.0/src/amber/__init__.py +389 -0
  15. amber_lang-2.9.0/src/amber/__main__.py +75 -0
  16. amber_lang-2.9.0/src/amber/_amber.pyi +91 -0
  17. amber_lang-2.9.0/src/amber/arrow_abi.py +75 -0
  18. amber_lang-2.9.0/src/amber/convert.py +382 -0
  19. amber_lang-2.9.0/src/amber/py.typed +0 -0
  20. amber_lang-2.9.0/src/amber/table.py +493 -0
  21. amber_lang-2.9.0/src/amber_lang.egg-info/PKG-INFO +470 -0
  22. amber_lang-2.9.0/src/amber_lang.egg-info/SOURCES.txt +107 -0
  23. amber_lang-2.9.0/src/amber_lang.egg-info/dependency_links.txt +1 -0
  24. amber_lang-2.9.0/src/amber_lang.egg-info/entry_points.txt +2 -0
  25. amber_lang-2.9.0/src/amber_lang.egg-info/not-zip-safe +1 -0
  26. amber_lang-2.9.0/src/amber_lang.egg-info/requires.txt +31 -0
  27. amber_lang-2.9.0/src/amber_lang.egg-info/top_level.txt +1 -0
  28. amber_lang-2.9.0/src/py_amber.c +1390 -0
  29. amber_lang-2.9.0/tests/conftest.py +23 -0
  30. amber_lang-2.9.0/tests/test_convert.py +189 -0
  31. amber_lang-2.9.0/tests/test_core.py +123 -0
  32. amber_lang-2.9.0/tests/test_frames.py +131 -0
  33. amber_lang-2.9.0/tests/test_properties.py +89 -0
  34. amber_lang-2.9.0/tests/test_robust.py +234 -0
  35. amber_lang-2.9.0/tests/test_table.py +321 -0
  36. amber_lang-2.9.0/tests/test_temporal.py +210 -0
  37. amber_lang-2.9.0/tests/test_value.py +168 -0
  38. amber_lang-2.9.0/tests/test_zerocopy.py +73 -0
  39. amber_lang-2.9.0/vendor/amber/ENGINE_VERSION +1 -0
  40. amber_lang-2.9.0/vendor/amber/LICENSE +661 -0
  41. amber_lang-2.9.0/vendor/amber/NOTICE +40 -0
  42. amber_lang-2.9.0/vendor/amber/amber.k +522 -0
  43. amber_lang-2.9.0/vendor/amber/build.sh +189 -0
  44. amber_lang-2.9.0/vendor/amber/fin.k +79 -0
  45. amber_lang-2.9.0/vendor/amber/hdb.k +103 -0
  46. amber_lang-2.9.0/vendor/amber/ipc.k +25 -0
  47. amber_lang-2.9.0/vendor/amber/qsql.k +435 -0
  48. amber_lang-2.9.0/vendor/amber/src/0.c +155 -0
  49. amber_lang-2.9.0/vendor/amber/src/1.c +33 -0
  50. amber_lang-2.9.0/vendor/amber/src/2.c +537 -0
  51. amber_lang-2.9.0/vendor/amber/src/3.c +566 -0
  52. amber_lang-2.9.0/vendor/amber/src/4.c +12 -0
  53. amber_lang-2.9.0/vendor/amber/src/a.c +1319 -0
  54. amber_lang-2.9.0/vendor/amber/src/a.h +381 -0
  55. amber_lang-2.9.0/vendor/amber/src/amber_wasm.c +173 -0
  56. amber_lang-2.9.0/vendor/amber/src/ansi.h +34 -0
  57. amber_lang-2.9.0/vendor/amber/src/ar.c +117 -0
  58. amber_lang-2.9.0/vendor/amber/src/arena.c +182 -0
  59. amber_lang-2.9.0/vendor/amber/src/arena.h +77 -0
  60. amber_lang-2.9.0/vendor/amber/src/ast.c +1001 -0
  61. amber_lang-2.9.0/vendor/amber/src/ast.h +160 -0
  62. amber_lang-2.9.0/vendor/amber/src/b.c +540 -0
  63. amber_lang-2.9.0/vendor/amber/src/c.c +71 -0
  64. amber_lang-2.9.0/vendor/amber/src/csv.c +1992 -0
  65. amber_lang-2.9.0/vendor/amber/src/csv.h +130 -0
  66. amber_lang-2.9.0/vendor/amber/src/diagnostic.c +226 -0
  67. amber_lang-2.9.0/vendor/amber/src/diagnostic.h +87 -0
  68. amber_lang-2.9.0/vendor/amber/src/dsk.c +247 -0
  69. amber_lang-2.9.0/vendor/amber/src/e.c +172 -0
  70. amber_lang-2.9.0/vendor/amber/src/ext.c +851 -0
  71. amber_lang-2.9.0/vendor/amber/src/ext.h +499 -0
  72. amber_lang-2.9.0/vendor/amber/src/f.c +602 -0
  73. amber_lang-2.9.0/vendor/amber/src/fmtutil.c +12 -0
  74. amber_lang-2.9.0/vendor/amber/src/fmtutil.h +23 -0
  75. amber_lang-2.9.0/vendor/amber/src/g.h +637 -0
  76. amber_lang-2.9.0/vendor/amber/src/h.c +151 -0
  77. amber_lang-2.9.0/vendor/amber/src/i.c +845 -0
  78. amber_lang-2.9.0/vendor/amber/src/inspect.c +204 -0
  79. amber_lang-2.9.0/vendor/amber/src/inspect.h +48 -0
  80. amber_lang-2.9.0/vendor/amber/src/j.c +63 -0
  81. amber_lang-2.9.0/vendor/amber/src/k.c +24 -0
  82. amber_lang-2.9.0/vendor/amber/src/k.h +10 -0
  83. amber_lang-2.9.0/vendor/amber/src/libamber.map +31 -0
  84. amber_lang-2.9.0/vendor/amber/src/ln.c +1755 -0
  85. amber_lang-2.9.0/vendor/amber/src/ln.h +159 -0
  86. amber_lang-2.9.0/vendor/amber/src/lnk.c +92 -0
  87. amber_lang-2.9.0/vendor/amber/src/m.c +647 -0
  88. amber_lang-2.9.0/vendor/amber/src/o.c +648 -0
  89. amber_lang-2.9.0/vendor/amber/src/p.c +286 -0
  90. amber_lang-2.9.0/vendor/amber/src/parallel.c +314 -0
  91. amber_lang-2.9.0/vendor/amber/src/parallel.h +69 -0
  92. amber_lang-2.9.0/vendor/amber/src/peachpool.c +212 -0
  93. amber_lang-2.9.0/vendor/amber/src/peachpool.h +31 -0
  94. amber_lang-2.9.0/vendor/amber/src/qipc.c +245 -0
  95. amber_lang-2.9.0/vendor/amber/src/r.c +45 -0
  96. amber_lang-2.9.0/vendor/amber/src/s.c +125 -0
  97. amber_lang-2.9.0/vendor/amber/src/ser.c +160 -0
  98. amber_lang-2.9.0/vendor/amber/src/simd.c +1080 -0
  99. amber_lang-2.9.0/vendor/amber/src/simd.h +162 -0
  100. amber_lang-2.9.0/vendor/amber/src/trace.c +174 -0
  101. amber_lang-2.9.0/vendor/amber/src/trace.h +56 -0
  102. amber_lang-2.9.0/vendor/amber/src/v.c +1024 -0
  103. amber_lang-2.9.0/vendor/amber/src/vm.c +232 -0
  104. amber_lang-2.9.0/vendor/amber/src/vm.h +86 -0
  105. amber_lang-2.9.0/vendor/amber/src/w.c +343 -0
  106. amber_lang-2.9.0/vendor/amber/src/wasmlibc.c +447 -0
  107. amber_lang-2.9.0/vendor/amber/std.k +79 -0
  108. amber_lang-2.9.0/vendor/amber/sys.k +156 -0
  109. amber_lang-2.9.0/vendor/amber/temporal.k +54 -0
@@ -0,0 +1,53 @@
1
+ # Changelog
2
+
3
+ ## 2.9.0
4
+
5
+ - **`pip install amber-lang`**: it's on PyPI now, still `import amber`. Wheels for Linux (x86_64, aarch64) and
6
+ Apple silicon on Python 3.10 to 3.14, and the sdist carries the engine's source, so it builds anywhere with a C
7
+ compiler. Releases go out from a tag, through trusted publishing.
8
+ - **Amber 2.9's temporals**: dates, months, timestamps, timespans, times, seconds and minutes come back as
9
+ `datetime64`/`timedelta64` with the epoch moved right (Amber counts from 2000, NumPy from 1970) and nulls as `NaT`.
10
+ Timespans stay zero-copy. `datetime`, `date`, `time`, `timedelta`, NumPy and pandas datetimes go in as the real
11
+ thing, aware ones as UTC. They used to go in as plain nanosecond numbers.
12
+ - **Arrow both ways, properly**: `from_arrow` takes sliced and chunked tables, readers, dictionaries, decimals, every
13
+ int width, bools with nulls and every temporal type. Things it can't hold (nested, binary, a uint64 past the int64
14
+ range) say so, they used to read garbage. `to_arrow` gives temporal columns their Arrow types and bytes as `int8`.
15
+ - **pandas**: nullable `Int64`/`Float64`/`boolean`, categoricals and tz-aware columns import, duplicate column names
16
+ are an error, and `to_pandas(categorical=True)` gives symbols as a `Categorical` straight from the engine's ids.
17
+ - **Sturdier values**: `release()`, `equals()`, pickling, `symbol_codes()`. A released value raises instead of
18
+ crashing, views can't be written through, and every NumPy view keeps its value alive.
19
+ - **Conversions in**: big-endian, strided, `float16` and unsigned buffers, NumPy scalars, and ints past int64 are
20
+ an `OverflowError`, they used to wrap.
21
+ - `am.q` takes a query over several lines, `am.load` loads `.q` scripts and databases as `\l` does, and
22
+ `Table` got `head`, `tail`, `dtypes`, `to_numpy` and `from_polars`.
23
+ - 255 tests, up from 30: Hypothesis round trips, leak and thread checks, and the CLI.
24
+
25
+ ## 1.9.6 — first release
26
+
27
+ The Amber engine in your Python process, with zero-copy NumPy, pandas and Arrow interop.
28
+
29
+ Tracks Amber engine release 1.9.6, which added the `libamber.so` dynamic C API
30
+ this package is built on. Everything here lives outside the engine repository and
31
+ reaches it only through that documented seam.
32
+
33
+ - **Zero-copy out.** An Amber vector is exposed through PEP 3118, so
34
+ `numpy.asarray(v)`, `memoryview(v)` and `pyarrow.py_buffer(v)` all alias the
35
+ engine's own column payload and all keep it alive for as long as they exist.
36
+ One implementation, no NumPy or Arrow header anywhere in the build.
37
+ - **Dynamic dispatch.** `am.gentq(10_000_000)` resolves whatever `gentq` is in
38
+ the engine's namespace at the moment you touch it, dotted names included.
39
+ Nothing in the package enumerates Amber's vocabulary, so it cannot fall behind.
40
+ - **Bare qSQL.** `am.q("select vwap:wavg[sz;px] by sym from trades")` — the
41
+ rewrite the REPL applies to interactive lines, applied where the REPL cannot
42
+ reach.
43
+ - **Self-contained wheels.** `libamber.so` and the eight `.k` standard-library
44
+ modules ship inside the wheel, so `pip install amber` gives a working engine
45
+ rather than a working binding that cannot find one.
46
+ - **Keyed results** (`select … by sym`) arrive as a table with the grouping
47
+ columns recorded, and `to_pandas()` puts them on the index.
48
+ - 30 tests, including pointer-equality proofs that the NumPy array and the Arrow
49
+ buffer are the engine's own memory.
50
+
51
+ ### Licence
52
+
53
+ GNU AGPLv3, matching the engine.