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.
- amber_lang-2.9.0/CHANGELOG.md +53 -0
- amber_lang-2.9.0/LICENSE +661 -0
- amber_lang-2.9.0/MANIFEST.in +25 -0
- amber_lang-2.9.0/NOTICE +14 -0
- amber_lang-2.9.0/PKG-INFO +470 -0
- amber_lang-2.9.0/README.md +412 -0
- amber_lang-2.9.0/examples/quickstart.py +55 -0
- amber_lang-2.9.0/include/amber_capi.h +152 -0
- amber_lang-2.9.0/pyproject.toml +83 -0
- amber_lang-2.9.0/scripts/build_wheel.sh +58 -0
- amber_lang-2.9.0/scripts/vendor_engine.sh +33 -0
- amber_lang-2.9.0/setup.cfg +4 -0
- amber_lang-2.9.0/setup.py +213 -0
- amber_lang-2.9.0/src/amber/__init__.py +389 -0
- amber_lang-2.9.0/src/amber/__main__.py +75 -0
- amber_lang-2.9.0/src/amber/_amber.pyi +91 -0
- amber_lang-2.9.0/src/amber/arrow_abi.py +75 -0
- amber_lang-2.9.0/src/amber/convert.py +382 -0
- amber_lang-2.9.0/src/amber/py.typed +0 -0
- amber_lang-2.9.0/src/amber/table.py +493 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/PKG-INFO +470 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/SOURCES.txt +107 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/dependency_links.txt +1 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/entry_points.txt +2 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/not-zip-safe +1 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/requires.txt +31 -0
- amber_lang-2.9.0/src/amber_lang.egg-info/top_level.txt +1 -0
- amber_lang-2.9.0/src/py_amber.c +1390 -0
- amber_lang-2.9.0/tests/conftest.py +23 -0
- amber_lang-2.9.0/tests/test_convert.py +189 -0
- amber_lang-2.9.0/tests/test_core.py +123 -0
- amber_lang-2.9.0/tests/test_frames.py +131 -0
- amber_lang-2.9.0/tests/test_properties.py +89 -0
- amber_lang-2.9.0/tests/test_robust.py +234 -0
- amber_lang-2.9.0/tests/test_table.py +321 -0
- amber_lang-2.9.0/tests/test_temporal.py +210 -0
- amber_lang-2.9.0/tests/test_value.py +168 -0
- amber_lang-2.9.0/tests/test_zerocopy.py +73 -0
- amber_lang-2.9.0/vendor/amber/ENGINE_VERSION +1 -0
- amber_lang-2.9.0/vendor/amber/LICENSE +661 -0
- amber_lang-2.9.0/vendor/amber/NOTICE +40 -0
- amber_lang-2.9.0/vendor/amber/amber.k +522 -0
- amber_lang-2.9.0/vendor/amber/build.sh +189 -0
- amber_lang-2.9.0/vendor/amber/fin.k +79 -0
- amber_lang-2.9.0/vendor/amber/hdb.k +103 -0
- amber_lang-2.9.0/vendor/amber/ipc.k +25 -0
- amber_lang-2.9.0/vendor/amber/qsql.k +435 -0
- amber_lang-2.9.0/vendor/amber/src/0.c +155 -0
- amber_lang-2.9.0/vendor/amber/src/1.c +33 -0
- amber_lang-2.9.0/vendor/amber/src/2.c +537 -0
- amber_lang-2.9.0/vendor/amber/src/3.c +566 -0
- amber_lang-2.9.0/vendor/amber/src/4.c +12 -0
- amber_lang-2.9.0/vendor/amber/src/a.c +1319 -0
- amber_lang-2.9.0/vendor/amber/src/a.h +381 -0
- amber_lang-2.9.0/vendor/amber/src/amber_wasm.c +173 -0
- amber_lang-2.9.0/vendor/amber/src/ansi.h +34 -0
- amber_lang-2.9.0/vendor/amber/src/ar.c +117 -0
- amber_lang-2.9.0/vendor/amber/src/arena.c +182 -0
- amber_lang-2.9.0/vendor/amber/src/arena.h +77 -0
- amber_lang-2.9.0/vendor/amber/src/ast.c +1001 -0
- amber_lang-2.9.0/vendor/amber/src/ast.h +160 -0
- amber_lang-2.9.0/vendor/amber/src/b.c +540 -0
- amber_lang-2.9.0/vendor/amber/src/c.c +71 -0
- amber_lang-2.9.0/vendor/amber/src/csv.c +1992 -0
- amber_lang-2.9.0/vendor/amber/src/csv.h +130 -0
- amber_lang-2.9.0/vendor/amber/src/diagnostic.c +226 -0
- amber_lang-2.9.0/vendor/amber/src/diagnostic.h +87 -0
- amber_lang-2.9.0/vendor/amber/src/dsk.c +247 -0
- amber_lang-2.9.0/vendor/amber/src/e.c +172 -0
- amber_lang-2.9.0/vendor/amber/src/ext.c +851 -0
- amber_lang-2.9.0/vendor/amber/src/ext.h +499 -0
- amber_lang-2.9.0/vendor/amber/src/f.c +602 -0
- amber_lang-2.9.0/vendor/amber/src/fmtutil.c +12 -0
- amber_lang-2.9.0/vendor/amber/src/fmtutil.h +23 -0
- amber_lang-2.9.0/vendor/amber/src/g.h +637 -0
- amber_lang-2.9.0/vendor/amber/src/h.c +151 -0
- amber_lang-2.9.0/vendor/amber/src/i.c +845 -0
- amber_lang-2.9.0/vendor/amber/src/inspect.c +204 -0
- amber_lang-2.9.0/vendor/amber/src/inspect.h +48 -0
- amber_lang-2.9.0/vendor/amber/src/j.c +63 -0
- amber_lang-2.9.0/vendor/amber/src/k.c +24 -0
- amber_lang-2.9.0/vendor/amber/src/k.h +10 -0
- amber_lang-2.9.0/vendor/amber/src/libamber.map +31 -0
- amber_lang-2.9.0/vendor/amber/src/ln.c +1755 -0
- amber_lang-2.9.0/vendor/amber/src/ln.h +159 -0
- amber_lang-2.9.0/vendor/amber/src/lnk.c +92 -0
- amber_lang-2.9.0/vendor/amber/src/m.c +647 -0
- amber_lang-2.9.0/vendor/amber/src/o.c +648 -0
- amber_lang-2.9.0/vendor/amber/src/p.c +286 -0
- amber_lang-2.9.0/vendor/amber/src/parallel.c +314 -0
- amber_lang-2.9.0/vendor/amber/src/parallel.h +69 -0
- amber_lang-2.9.0/vendor/amber/src/peachpool.c +212 -0
- amber_lang-2.9.0/vendor/amber/src/peachpool.h +31 -0
- amber_lang-2.9.0/vendor/amber/src/qipc.c +245 -0
- amber_lang-2.9.0/vendor/amber/src/r.c +45 -0
- amber_lang-2.9.0/vendor/amber/src/s.c +125 -0
- amber_lang-2.9.0/vendor/amber/src/ser.c +160 -0
- amber_lang-2.9.0/vendor/amber/src/simd.c +1080 -0
- amber_lang-2.9.0/vendor/amber/src/simd.h +162 -0
- amber_lang-2.9.0/vendor/amber/src/trace.c +174 -0
- amber_lang-2.9.0/vendor/amber/src/trace.h +56 -0
- amber_lang-2.9.0/vendor/amber/src/v.c +1024 -0
- amber_lang-2.9.0/vendor/amber/src/vm.c +232 -0
- amber_lang-2.9.0/vendor/amber/src/vm.h +86 -0
- amber_lang-2.9.0/vendor/amber/src/w.c +343 -0
- amber_lang-2.9.0/vendor/amber/src/wasmlibc.c +447 -0
- amber_lang-2.9.0/vendor/amber/std.k +79 -0
- amber_lang-2.9.0/vendor/amber/sys.k +156 -0
- 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.
|