buttercookie 0.1.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.
@@ -0,0 +1 @@
1
+ 3.14
@@ -0,0 +1,133 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "buttercookie"
7
+ version = "0.1.0"
8
+ dependencies = [
9
+ "pyo3",
10
+ ]
11
+
12
+ [[package]]
13
+ name = "heck"
14
+ version = "0.5.0"
15
+ source = "registry+https://github.com/rust-lang/crates.io-index"
16
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
17
+
18
+ [[package]]
19
+ name = "libc"
20
+ version = "0.2.189"
21
+ source = "registry+https://github.com/rust-lang/crates.io-index"
22
+ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
23
+
24
+ [[package]]
25
+ name = "once_cell"
26
+ version = "1.21.4"
27
+ source = "registry+https://github.com/rust-lang/crates.io-index"
28
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
29
+
30
+ [[package]]
31
+ name = "portable-atomic"
32
+ version = "1.15.0"
33
+ source = "registry+https://github.com/rust-lang/crates.io-index"
34
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
35
+
36
+ [[package]]
37
+ name = "proc-macro2"
38
+ version = "1.0.107"
39
+ source = "registry+https://github.com/rust-lang/crates.io-index"
40
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
41
+ dependencies = [
42
+ "unicode-ident",
43
+ ]
44
+
45
+ [[package]]
46
+ name = "pyo3"
47
+ version = "0.28.3"
48
+ source = "registry+https://github.com/rust-lang/crates.io-index"
49
+ checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
50
+ dependencies = [
51
+ "libc",
52
+ "once_cell",
53
+ "portable-atomic",
54
+ "pyo3-build-config",
55
+ "pyo3-ffi",
56
+ "pyo3-macros",
57
+ ]
58
+
59
+ [[package]]
60
+ name = "pyo3-build-config"
61
+ version = "0.28.3"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
64
+ dependencies = [
65
+ "target-lexicon",
66
+ ]
67
+
68
+ [[package]]
69
+ name = "pyo3-ffi"
70
+ version = "0.28.3"
71
+ source = "registry+https://github.com/rust-lang/crates.io-index"
72
+ checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
73
+ dependencies = [
74
+ "libc",
75
+ "pyo3-build-config",
76
+ ]
77
+
78
+ [[package]]
79
+ name = "pyo3-macros"
80
+ version = "0.28.3"
81
+ source = "registry+https://github.com/rust-lang/crates.io-index"
82
+ checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
83
+ dependencies = [
84
+ "proc-macro2",
85
+ "pyo3-macros-backend",
86
+ "quote",
87
+ "syn",
88
+ ]
89
+
90
+ [[package]]
91
+ name = "pyo3-macros-backend"
92
+ version = "0.28.3"
93
+ source = "registry+https://github.com/rust-lang/crates.io-index"
94
+ checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
95
+ dependencies = [
96
+ "heck",
97
+ "proc-macro2",
98
+ "pyo3-build-config",
99
+ "quote",
100
+ "syn",
101
+ ]
102
+
103
+ [[package]]
104
+ name = "quote"
105
+ version = "1.0.47"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
108
+ dependencies = [
109
+ "proc-macro2",
110
+ ]
111
+
112
+ [[package]]
113
+ name = "syn"
114
+ version = "2.0.119"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
117
+ dependencies = [
118
+ "proc-macro2",
119
+ "quote",
120
+ "unicode-ident",
121
+ ]
122
+
123
+ [[package]]
124
+ name = "target-lexicon"
125
+ version = "0.13.5"
126
+ source = "registry+https://github.com/rust-lang/crates.io-index"
127
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
128
+
129
+ [[package]]
130
+ name = "unicode-ident"
131
+ version = "1.0.24"
132
+ source = "registry+https://github.com/rust-lang/crates.io-index"
133
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
@@ -0,0 +1,15 @@
1
+ [package]
2
+ name = "buttercookie"
3
+ version = "0.1.0"
4
+ edition = "2024"
5
+ readme = "README.md"
6
+
7
+ [lib]
8
+ name = "_core"
9
+ # "cdylib" is necessary to produce a shared library for Python to import from.
10
+ crate-type = ["cdylib"]
11
+
12
+ [dependencies]
13
+ # "extension-module" tells pyo3 we want to build an extension module (skips linking against libpython.so)
14
+ # "abi3-py39" tells pyo3 (and maturin) to build using the stable ABI with minimum Python version 3.9
15
+ pyo3 = { version = "0.28.2", features = ["extension-module", "abi3-py39"] }
@@ -0,0 +1,12 @@
1
+ Metadata-Version: 2.4
2
+ Name: buttercookie
3
+ Version: 0.1.0
4
+ Summary: Add your description here
5
+ Author-email: buttercookiegh <israt.bushra.eee@gmail.com>
6
+ Requires-Python: >=3.12
7
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
8
+
9
+ # buttercookie
10
+
11
+ A Python package with a discrete derivative function.
12
+
@@ -0,0 +1,3 @@
1
+ # buttercookie
2
+
3
+ A Python package with a discrete derivative function.
@@ -0,0 +1,22 @@
1
+ [project]
2
+ name = "buttercookie"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "buttercookiegh", email = "israt.bushra.eee@gmail.com" }
8
+ ]
9
+ requires-python = ">=3.12"
10
+ dependencies = []
11
+
12
+ [tool.maturin]
13
+ module-name = "buttercookie._core"
14
+ python-packages = ["buttercookie"]
15
+ python-source = "src"
16
+
17
+ [tool.uv]
18
+ cache-keys = [{ file = "pyproject.toml" }, { file = "src/**/*.rs" }, { file = "Cargo.toml" }, { file = "Cargo.lock" }]
19
+
20
+ [build-system]
21
+ requires = ["maturin>=1.0,<2.0"]
22
+ build-backend = "maturin"
@@ -0,0 +1,3 @@
1
+ from .differential import diff
2
+
3
+ __all__ = ["diff"]
@@ -0,0 +1 @@
1
+ def hello_from_bin() -> str: ...
@@ -0,0 +1,3 @@
1
+ from .discrete import diff
2
+
3
+ __all__ = ["diff"]
@@ -0,0 +1,23 @@
1
+ def diff(t, x):
2
+ """
3
+ Compute the discrete derivative of a timeseries.
4
+
5
+ The discrete derivative nu(t) is given by:
6
+ nu(t) = (x(t_k) - x(t_{k-1})) / (t_k - t_{k-1})
7
+ """
8
+ # Check if the input arrays have equal length
9
+ if len(t) != len(x):
10
+ raise ValueError("Time and signal arrays must have the same length")
11
+
12
+ n = len(t)
13
+ nu = [0.0] * n # Initialize derivative array
14
+
15
+ # Compute discrete derivative for each point starting from index 1
16
+ for k in range(1, n):
17
+ dt = t[k] - t[k-1] # Time step
18
+ if dt == 0:
19
+ raise ValueError(f"Time step cannot be zero at index {k}")
20
+ # Discrete derivative: (x(t_k) - x(t_{k-1})) / (t_k - t_{k-1})
21
+ nu[k] = (x[k] - x[k-1]) / dt
22
+
23
+ return nu
File without changes
@@ -0,0 +1,14 @@
1
+ use pyo3::prelude::*;
2
+
3
+ /// A Python module implemented in Rust. The name of this module must match
4
+ /// the `lib.name` setting in the `Cargo.toml`, else Python will not be able to
5
+ /// import the module.
6
+ #[pymodule]
7
+ mod _core {
8
+ use pyo3::prelude::*;
9
+
10
+ #[pyfunction]
11
+ fn hello_from_bin() -> String {
12
+ "Hello from buttercookie!".to_string()
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ Signature: 8a477f597d28d172789f06886806bc55
2
+ # This file is a cache directory tag created by cargo.
3
+ # For information about cache directory tags see https://bford.info/cachedir/