fenra 0.1.0__py3-none-any.whl
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.
- fenra/__init__.py +187 -0
- fenra/_context.py +42 -0
- fenra/_core.py +229 -0
- fenra/integrations/__init__.py +1 -0
- fenra/integrations/anthropic/__init__.py +677 -0
- fenra/integrations/gemini/__init__.py +529 -0
- fenra/integrations/openai/__init__.py +904 -0
- fenra/py.typed +0 -0
- fenra-0.1.0.dist-info/METADATA +90 -0
- fenra-0.1.0.dist-info/RECORD +11 -0
- fenra-0.1.0.dist-info/WHEEL +4 -0
fenra/py.typed
ADDED
|
File without changes
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: fenra
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Privacy-first AI cost tracking library
|
|
5
|
+
Author: Ajdin Ahmetovic
|
|
6
|
+
Author-email: Ajdin Ahmetovic <ahmetovicajdin@gmail.com>
|
|
7
|
+
Requires-Dist: requests>=2.28.0
|
|
8
|
+
Requires-Dist: fenra[openai,anthropic,gemini] ; extra == 'all'
|
|
9
|
+
Requires-Dist: anthropic>=0.18.0 ; extra == 'anthropic'
|
|
10
|
+
Requires-Dist: pytest>=7.0.0 ; extra == 'dev'
|
|
11
|
+
Requires-Dist: pytest-asyncio>=0.21.0 ; extra == 'dev'
|
|
12
|
+
Requires-Dist: mypy>=1.0.0 ; extra == 'dev'
|
|
13
|
+
Requires-Dist: ruff>=0.1.0 ; extra == 'dev'
|
|
14
|
+
Requires-Dist: google-genai>=1.0.0 ; extra == 'gemini'
|
|
15
|
+
Requires-Dist: openai>=1.0.0 ; extra == 'openai'
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Provides-Extra: all
|
|
18
|
+
Provides-Extra: anthropic
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
Provides-Extra: gemini
|
|
21
|
+
Provides-Extra: openai
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<img src="https://fenra.io/fenra-text.svg" alt="Fenra" width="200">
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
# Fenra Python SDK
|
|
29
|
+
|
|
30
|
+
[](https://pypi.python.org/pypi/fenra)
|
|
31
|
+
[](https://pypi.python.org/pypi/fenra)
|
|
32
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
33
|
+
|
|
34
|
+
FinOps platform for AI cost visibility
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
Install the package:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install fenra
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Initialize and start tracking:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
import fenra
|
|
48
|
+
from openai import OpenAI
|
|
49
|
+
|
|
50
|
+
fenra.init(api_key="your-fenra-api-key")
|
|
51
|
+
|
|
52
|
+
# Use as normal - costs are tracked automatically
|
|
53
|
+
client = OpenAI()
|
|
54
|
+
response = client.chat.completions.create(
|
|
55
|
+
model="gpt-4o",
|
|
56
|
+
messages=[{"role": "user", "content": "Hello!"}]
|
|
57
|
+
)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Works with Anthropic and Gemini the same way.
|
|
61
|
+
|
|
62
|
+
For custom providers or manual tracking:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
fenra.track(
|
|
66
|
+
provider="custom",
|
|
67
|
+
model="my-model",
|
|
68
|
+
input_tokens=100,
|
|
69
|
+
output_tokens=50,
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
To disable auto-tracking:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
export FENRA_DISABLE_AUTO_TRACK=1
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Support
|
|
80
|
+
|
|
81
|
+
- [Documentation](https://docs.fenra.io)
|
|
82
|
+
- [Contact](mailto:hello@fenra.io)
|
|
83
|
+
|
|
84
|
+
## Privacy
|
|
85
|
+
|
|
86
|
+
Fenra is privacy-first by default. No prompts or responses are stored unless explicitly enabled.
|
|
87
|
+
|
|
88
|
+
## License
|
|
89
|
+
|
|
90
|
+
The Fenra Python SDK is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
fenra/__init__.py,sha256=Ca79xn2mRrRZDhUghMxUzhy9edqWcHdsrFm57P8KhoY,5138
|
|
2
|
+
fenra/_context.py,sha256=x7zbjHUKTLMXw-n9appBtNPfZd_Ba3nKaHnCUkQ9yz8,1311
|
|
3
|
+
fenra/_core.py,sha256=ij7aUAPG0_knUKSbhizDmaE5BsqEVTcH-j7QgKhrWpo,6915
|
|
4
|
+
fenra/integrations/__init__.py,sha256=oDeG8jysIubwSMbDvrGeTkf3A5GW171HDGqGt8VMZ_M,51
|
|
5
|
+
fenra/integrations/anthropic/__init__.py,sha256=1_a3doBJEXT6G660J4EGzE1_8_Bz0CCfzsrX3uzIoTk,22461
|
|
6
|
+
fenra/integrations/gemini/__init__.py,sha256=omKiqPG597WPQ4ShN7ovUfkhuZyJgC8cisg5iT06i1g,16625
|
|
7
|
+
fenra/integrations/openai/__init__.py,sha256=xrynFDj3WgzXbHY5qghKlFCSzY16u3iwoLn-y5j1NdY,29537
|
|
8
|
+
fenra/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
fenra-0.1.0.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
|
|
10
|
+
fenra-0.1.0.dist-info/METADATA,sha256=ZXJvxjZIAvOl3HSYkshza_RXCBWGK6iZUEcRLsYV930,2237
|
|
11
|
+
fenra-0.1.0.dist-info/RECORD,,
|