programasweights 0.4.8__tar.gz → 0.4.10__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.
- {programasweights-0.4.8 → programasweights-0.4.10}/CHANGELOG.md +16 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/PKG-INFO +18 -13
- {programasweights-0.4.8 → programasweights-0.4.10}/PYPI_README.md +14 -11
- {programasweights-0.4.8 → programasweights-0.4.10}/README.md +14 -11
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/__init__.py +8 -4
- {programasweights-0.4.8 → programasweights-0.4.10}/pyproject.toml +4 -2
- {programasweights-0.4.8 → programasweights-0.4.10}/.gitignore +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/LICENSE +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/_output.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/_program_reference.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/_remote.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/artifacts.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/cache.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/cli.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/client.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/compiler/__init__.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/compiler/dummy.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/config.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/convert_peft_to_paw.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/errors.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/local_program.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/paw_format.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/runtime/__init__.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/runtime/interpreter.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/runtime/interpreter_onnx.py +0 -0
- {programasweights-0.4.8 → programasweights-0.4.10}/programasweights/runtime_llamacpp.py +0 -0
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.10 (2026-09-21)
|
|
4
|
+
|
|
5
|
+
- Support Python 3.8 through 3.14.
|
|
6
|
+
- Add prebuilt Intel Mac runtimes with Metal acceleration to the PAW
|
|
7
|
+
package index.
|
|
8
|
+
- Add Python 3.8 runtimes for Apple Silicon, Linux, and Windows, and
|
|
9
|
+
Python 3.14 runtimes for Windows.
|
|
10
|
+
- Bundle required Visual C++ and OpenMP libraries in the new Windows runtimes.
|
|
11
|
+
|
|
12
|
+
## 0.4.9 (2026-09-21)
|
|
13
|
+
|
|
14
|
+
- Lead quickstarts and examples with compiling your own functions, then
|
|
15
|
+
saving and reusing program IDs.
|
|
16
|
+
- Reuse loaded functions in the LangChain example and serialize calls to
|
|
17
|
+
each shared instance.
|
|
18
|
+
|
|
3
19
|
## 0.4.8 (2026-09-20)
|
|
4
20
|
|
|
5
21
|
- Reduce the source distribution to the SDK and files needed to build and
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: programasweights
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.10
|
|
4
4
|
Summary: Compile natural language specifications into neural programs that run locally via llama.cpp.
|
|
5
5
|
Project-URL: Homepage, https://programasweights.com
|
|
6
6
|
Project-URL: Repository, https://github.com/programasweights/programasweights-python
|
|
@@ -15,14 +15,16 @@ Classifier: Intended Audience :: Developers
|
|
|
15
15
|
Classifier: Intended Audience :: Science/Research
|
|
16
16
|
Classifier: License :: OSI Approved :: MIT License
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
19
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
25
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
26
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
-
Requires-Python: >=3.
|
|
27
|
+
Requires-Python: >=3.8
|
|
26
28
|
Requires-Dist: httpx<1.0,>=0.27.0
|
|
27
29
|
Requires-Dist: llama-cpp-python<=0.3.19,>=0.3.0
|
|
28
30
|
Provides-Extra: test
|
|
@@ -46,22 +48,21 @@ pip install programasweights --extra-index-url https://pypi.programasweights.com
|
|
|
46
48
|
```python
|
|
47
49
|
import programasweights as paw
|
|
48
50
|
|
|
49
|
-
#
|
|
50
|
-
fn = paw.
|
|
51
|
+
# Compile and load your own function
|
|
52
|
+
fn = paw.compile_and_load(
|
|
53
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
54
|
+
"Return only 'immediate' or 'wait'."
|
|
55
|
+
)
|
|
51
56
|
fn("Urgent: the server is down!") # "immediate"
|
|
52
57
|
fn("Newsletter: spring picnic") # "wait"
|
|
53
58
|
|
|
54
|
-
# Compile
|
|
59
|
+
# Compile once and save the program ID
|
|
55
60
|
program = paw.compile(
|
|
56
|
-
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
57
|
-
slug="json-fixer" # optional: creates username/json-fixer handle
|
|
61
|
+
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
58
62
|
)
|
|
59
|
-
|
|
63
|
+
print(program.id) # Save this ID for future runs
|
|
64
|
+
fn = paw.function(program.id)
|
|
60
65
|
fn("{name: 'Alice',}") # '{"name":"Alice"}'
|
|
61
|
-
|
|
62
|
-
# Or compile and load in one step
|
|
63
|
-
fn = paw.compile_and_load("Classify sentiment as positive or negative")
|
|
64
|
-
fn("I love this!") # "positive"
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
If you specifically want the smaller browser-compatible runtime, pass `compiler="paw-4b-gpt2"`. Otherwise, omit `compiler` and let the server default decide.
|
|
@@ -73,7 +74,11 @@ Use the hosted API for fast inference in around 150 ms, without a local model do
|
|
|
73
74
|
```python
|
|
74
75
|
import programasweights as paw
|
|
75
76
|
|
|
76
|
-
with paw.
|
|
77
|
+
with paw.compile_and_load(
|
|
78
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
79
|
+
"Return only 'immediate' or 'wait'.",
|
|
80
|
+
remote=True,
|
|
81
|
+
) as remote_fn:
|
|
77
82
|
print(remote_fn("Urgent: the server is down!"))
|
|
78
83
|
```
|
|
79
84
|
|
|
@@ -15,22 +15,21 @@ pip install programasweights --extra-index-url https://pypi.programasweights.com
|
|
|
15
15
|
```python
|
|
16
16
|
import programasweights as paw
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
fn = paw.
|
|
18
|
+
# Compile and load your own function
|
|
19
|
+
fn = paw.compile_and_load(
|
|
20
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
21
|
+
"Return only 'immediate' or 'wait'."
|
|
22
|
+
)
|
|
20
23
|
fn("Urgent: the server is down!") # "immediate"
|
|
21
24
|
fn("Newsletter: spring picnic") # "wait"
|
|
22
25
|
|
|
23
|
-
# Compile
|
|
26
|
+
# Compile once and save the program ID
|
|
24
27
|
program = paw.compile(
|
|
25
|
-
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
26
|
-
slug="json-fixer" # optional: creates username/json-fixer handle
|
|
28
|
+
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
27
29
|
)
|
|
28
|
-
|
|
30
|
+
print(program.id) # Save this ID for future runs
|
|
31
|
+
fn = paw.function(program.id)
|
|
29
32
|
fn("{name: 'Alice',}") # '{"name":"Alice"}'
|
|
30
|
-
|
|
31
|
-
# Or compile and load in one step
|
|
32
|
-
fn = paw.compile_and_load("Classify sentiment as positive or negative")
|
|
33
|
-
fn("I love this!") # "positive"
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
If you specifically want the smaller browser-compatible runtime, pass `compiler="paw-4b-gpt2"`. Otherwise, omit `compiler` and let the server default decide.
|
|
@@ -42,7 +41,11 @@ Use the hosted API for fast inference in around 150 ms, without a local model do
|
|
|
42
41
|
```python
|
|
43
42
|
import programasweights as paw
|
|
44
43
|
|
|
45
|
-
with paw.
|
|
44
|
+
with paw.compile_and_load(
|
|
45
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
46
|
+
"Return only 'immediate' or 'wait'.",
|
|
47
|
+
remote=True,
|
|
48
|
+
) as remote_fn:
|
|
46
49
|
print(remote_fn("Urgent: the server is down!"))
|
|
47
50
|
```
|
|
48
51
|
|
|
@@ -15,22 +15,21 @@ pip install programasweights --extra-index-url https://pypi.programasweights.com
|
|
|
15
15
|
```python
|
|
16
16
|
import programasweights as paw
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
fn = paw.
|
|
18
|
+
# Compile and load your own function
|
|
19
|
+
fn = paw.compile_and_load(
|
|
20
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
21
|
+
"Return only 'immediate' or 'wait'."
|
|
22
|
+
)
|
|
20
23
|
fn("Urgent: the server is down!") # "immediate"
|
|
21
24
|
fn("Newsletter: spring picnic") # "wait"
|
|
22
25
|
|
|
23
|
-
# Compile
|
|
26
|
+
# Compile once and save the program ID
|
|
24
27
|
program = paw.compile(
|
|
25
|
-
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
26
|
-
slug="json-fixer" # optional: creates username/json-fixer handle
|
|
28
|
+
"Fix malformed JSON: repair missing quotes and trailing commas"
|
|
27
29
|
)
|
|
28
|
-
|
|
30
|
+
print(program.id) # Save this ID for future runs
|
|
31
|
+
fn = paw.function(program.id)
|
|
29
32
|
fn("{name: 'Alice',}") # '{"name":"Alice"}'
|
|
30
|
-
|
|
31
|
-
# Or compile and load in one step
|
|
32
|
-
fn = paw.compile_and_load("Classify sentiment as positive or negative")
|
|
33
|
-
fn("I love this!") # "positive"
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
If you specifically want the smaller browser-compatible runtime, pass `compiler="paw-4b-gpt2"`. Otherwise, omit `compiler` and let the server default decide.
|
|
@@ -42,7 +41,11 @@ Use the hosted API for fast inference in around 150 ms, without a local model do
|
|
|
42
41
|
```python
|
|
43
42
|
import programasweights as paw
|
|
44
43
|
|
|
45
|
-
with paw.
|
|
44
|
+
with paw.compile_and_load(
|
|
45
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
46
|
+
"Return only 'immediate' or 'wait'.",
|
|
47
|
+
remote=True,
|
|
48
|
+
) as remote_fn:
|
|
46
49
|
print(remote_fn("Urgent: the server is down!"))
|
|
47
50
|
```
|
|
48
51
|
|
|
@@ -5,12 +5,16 @@ functions that run locally.
|
|
|
5
5
|
Quick start:
|
|
6
6
|
import programasweights as paw
|
|
7
7
|
|
|
8
|
-
#
|
|
9
|
-
fn = paw.
|
|
8
|
+
# Compile and load your own function
|
|
9
|
+
fn = paw.compile_and_load(
|
|
10
|
+
"Classify if a message needs immediate attention or can wait. "
|
|
11
|
+
"Return only 'immediate' or 'wait'."
|
|
12
|
+
)
|
|
10
13
|
fn("Urgent: server is down!") # "immediate"
|
|
11
14
|
|
|
12
|
-
# Compile
|
|
15
|
+
# Compile once and save the program ID
|
|
13
16
|
program = paw.compile("Fix malformed JSON: repair missing quotes and trailing commas")
|
|
17
|
+
print(program.id) # Save this ID for future runs
|
|
14
18
|
fn = paw.function(program.id)
|
|
15
19
|
fn("{name: 'Alice',}") # '{"name":"Alice"}'
|
|
16
20
|
|
|
@@ -27,7 +31,7 @@ try:
|
|
|
27
31
|
from importlib.metadata import version as _meta_version
|
|
28
32
|
__version__ = _meta_version("programasweights")
|
|
29
33
|
except Exception:
|
|
30
|
-
__version__ = "0.4.
|
|
34
|
+
__version__ = "0.4.10"
|
|
31
35
|
|
|
32
36
|
from ._output import ProgressCallback, ProgressEvent, report_progress
|
|
33
37
|
from .cache import CachedProgram
|
|
@@ -4,10 +4,10 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "programasweights"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.10"
|
|
8
8
|
description = "Compile natural language specifications into neural programs that run locally via llama.cpp."
|
|
9
9
|
readme = "PYPI_README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name = "ProgramAsWeights", email = "support@programasweights.com" }
|
|
13
13
|
]
|
|
@@ -19,11 +19,13 @@ classifiers = [
|
|
|
19
19
|
"Intended Audience :: Science/Research",
|
|
20
20
|
"License :: OSI Approved :: MIT License",
|
|
21
21
|
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.8",
|
|
22
23
|
"Programming Language :: Python :: 3.9",
|
|
23
24
|
"Programming Language :: Python :: 3.10",
|
|
24
25
|
"Programming Language :: Python :: 3.11",
|
|
25
26
|
"Programming Language :: Python :: 3.12",
|
|
26
27
|
"Programming Language :: Python :: 3.13",
|
|
28
|
+
"Programming Language :: Python :: 3.14",
|
|
27
29
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
28
30
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
29
31
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{programasweights-0.4.8 → programasweights-0.4.10}/programasweights/runtime/interpreter_onnx.py
RENAMED
|
File without changes
|
|
File without changes
|