kotharcomputing 1.0.1__tar.gz → 1.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.
Files changed (18) hide show
  1. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/PKG-INFO +19 -38
  2. kotharcomputing-1.1.0/README.md +38 -0
  3. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/pyproject.toml +1 -1
  4. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing.egg-info/PKG-INFO +19 -38
  5. kotharcomputing-1.0.1/README.md +0 -57
  6. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/setup.cfg +0 -0
  7. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/__init__.py +0 -0
  8. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/_generated/__init__.py +0 -0
  9. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/_generated/operations.py +0 -0
  10. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/_generated/types.py +0 -0
  11. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/aleph_language_server.py +0 -0
  12. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/client.py +0 -0
  13. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/errors.py +0 -0
  14. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/py.typed +0 -0
  15. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing/transport.py +0 -0
  16. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing.egg-info/SOURCES.txt +0 -0
  17. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing.egg-info/dependency_links.txt +0 -0
  18. {kotharcomputing-1.0.1 → kotharcomputing-1.1.0}/src/kotharcomputing.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kotharcomputing
3
- Version: 1.0.1
3
+ Version: 1.1.0
4
4
  Summary: Python SDK for the Kothar API
5
5
  Author: Kothar Computing
6
6
  License-Expression: Apache-2.0
@@ -17,39 +17,7 @@ Description-Content-Type: text/markdown
17
17
 
18
18
  # Kothar Python SDK
19
19
 
20
- Python SDK for the Kothar API generated from `schemas/openapi.yml`.
21
-
22
- Install the published SDK with `pip install kotharcomputing`. Starting with `1.0.0`,
23
- the package is released from `kothardev/kothar-platform` and its version follows the
24
- platform tag (`v1.0.0` publishes `1.0.0`). It replaces the package previously built
25
- in `kothar-backend`; use the workspace and target API examples below when updating
26
- applications from the legacy SDK. Existing PyPI releases remain available for pinned installations.
27
-
28
- ## Aleph language server
29
-
30
- The SDK also provides a separate anonymous HTTP client for the Aleph language
31
- server. It does not use Kothar API authentication:
32
-
33
- ```python
34
- from kotharcomputing import AlephLanguageServerClient
35
-
36
- aleph = AlephLanguageServerClient()
37
- analysis = aleph.analyze('print("hello")', include_ast=True)
38
- parsed = aleph.ast('print("hello")', format=True, discover_test=True)
39
- tests = aleph.discover_tests('test "example" {}')
40
- formatted = aleph.format('print( "hello" )')
41
- ```
42
-
43
- Pass `base_url=` or `AlephLanguageServerClientOptions` to use another Aleph
44
- deployment. The default endpoint is `https://aleph.kotharcomputing.com`.
45
-
46
- `ast` accepts an optional structured `filter` and returns a required AST with syntax and light binding diagnostics,
47
- without establishing full type correctness. Both `ast` and `analyze` accept `format` and `discover_test`; their optional
48
- `tests` field and the direct `discover_tests` result use `AlephTestDiscoverySection`, with recursive sections and typed
49
- test metadata. Discovery does not execute source or tests. The client-level `timeout` applies to these methods too.
50
-
51
- The reviewed contract is pinned in `schemas/aleph-openapi.json`; maintenance and SDK parity checks are documented in
52
- [RFC 0013](../../../docs/rfcs/0013-workshop-tasks-and-aleph-execution.md).
20
+ Python SDK for the [Kothar API](https://docs.kotharcomputing.com/docs/the-forge/API).
53
21
 
54
22
  ## Workshop API tokens
55
23
 
@@ -58,8 +26,7 @@ credential when it is shown. Delete it to revoke access; create a replacement to
58
26
  Non-expiring tokens keep their issued grants until revoked.
59
27
 
60
28
  This example needs **Files → List (All files)** and **Targets → List**. Set the credential and the workspace/user IDs shown
61
- on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases. Never
62
- save credentials in source code, logs, or browser storage.
29
+ on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases.
63
30
 
64
31
  ```python
65
32
  import os
@@ -70,5 +37,19 @@ files = client.workspaces.id(os.environ["KOTHAR_WORKSPACE_ID"]).files.list()
70
37
  targets = client.users.id(os.environ["KOTHAR_USER_ID"]).targets.list()
71
38
  ```
72
39
 
73
- Creating tasks also needs read access to the chosen task definition and any specified target. Task search-schema
74
- discovery needs **Targets → List** and **Task definitions → List**. Add these grants explicitly when needed.
40
+ Creating tasks also needs read access to the chosen task definition and any specified target.
41
+
42
+ ## Aleph language server
43
+
44
+ The SDK also provides a separate anonymous HTTP client for the Aleph language
45
+ server. It does not use Kothar API authentication:
46
+
47
+ ```python
48
+ from kotharcomputing import AlephLanguageServerClient
49
+
50
+ aleph = AlephLanguageServerClient()
51
+ analysis = aleph.analyze('print("hello")', include_ast=True)
52
+ parsed = aleph.ast('print("hello")', format=True, discover_test=True)
53
+ tests = aleph.discover_tests('test "example" {}')
54
+ formatted = aleph.format('print( "hello" )')
55
+ ```
@@ -0,0 +1,38 @@
1
+ # Kothar Python SDK
2
+
3
+ Python SDK for the [Kothar API](https://docs.kotharcomputing.com/docs/the-forge/API).
4
+
5
+ ## Workshop API tokens
6
+
7
+ Create an immutable token in **Account settings → API tokens**, explicitly select its permissions, and save the
8
+ credential when it is shown. Delete it to revoke access; create a replacement to change metadata, expiration, or grants.
9
+ Non-expiring tokens keep their issued grants until revoked.
10
+
11
+ This example needs **Files → List (All files)** and **Targets → List**. Set the credential and the workspace/user IDs shown
12
+ on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases.
13
+
14
+ ```python
15
+ import os
16
+ from kotharcomputing import KotharClient
17
+
18
+ client = KotharClient(access_token=os.environ["KOTHAR_API_TOKEN"])
19
+ files = client.workspaces.id(os.environ["KOTHAR_WORKSPACE_ID"]).files.list()
20
+ targets = client.users.id(os.environ["KOTHAR_USER_ID"]).targets.list()
21
+ ```
22
+
23
+ Creating tasks also needs read access to the chosen task definition and any specified target.
24
+
25
+ ## Aleph language server
26
+
27
+ The SDK also provides a separate anonymous HTTP client for the Aleph language
28
+ server. It does not use Kothar API authentication:
29
+
30
+ ```python
31
+ from kotharcomputing import AlephLanguageServerClient
32
+
33
+ aleph = AlephLanguageServerClient()
34
+ analysis = aleph.analyze('print("hello")', include_ast=True)
35
+ parsed = aleph.ast('print("hello")', format=True, discover_test=True)
36
+ tests = aleph.discover_tests('test "example" {}')
37
+ formatted = aleph.format('print( "hello" )')
38
+ ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "kotharcomputing"
7
- version = "1.0.1"
7
+ version = "1.1.0"
8
8
  description = "Python SDK for the Kothar API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kotharcomputing
3
- Version: 1.0.1
3
+ Version: 1.1.0
4
4
  Summary: Python SDK for the Kothar API
5
5
  Author: Kothar Computing
6
6
  License-Expression: Apache-2.0
@@ -17,39 +17,7 @@ Description-Content-Type: text/markdown
17
17
 
18
18
  # Kothar Python SDK
19
19
 
20
- Python SDK for the Kothar API generated from `schemas/openapi.yml`.
21
-
22
- Install the published SDK with `pip install kotharcomputing`. Starting with `1.0.0`,
23
- the package is released from `kothardev/kothar-platform` and its version follows the
24
- platform tag (`v1.0.0` publishes `1.0.0`). It replaces the package previously built
25
- in `kothar-backend`; use the workspace and target API examples below when updating
26
- applications from the legacy SDK. Existing PyPI releases remain available for pinned installations.
27
-
28
- ## Aleph language server
29
-
30
- The SDK also provides a separate anonymous HTTP client for the Aleph language
31
- server. It does not use Kothar API authentication:
32
-
33
- ```python
34
- from kotharcomputing import AlephLanguageServerClient
35
-
36
- aleph = AlephLanguageServerClient()
37
- analysis = aleph.analyze('print("hello")', include_ast=True)
38
- parsed = aleph.ast('print("hello")', format=True, discover_test=True)
39
- tests = aleph.discover_tests('test "example" {}')
40
- formatted = aleph.format('print( "hello" )')
41
- ```
42
-
43
- Pass `base_url=` or `AlephLanguageServerClientOptions` to use another Aleph
44
- deployment. The default endpoint is `https://aleph.kotharcomputing.com`.
45
-
46
- `ast` accepts an optional structured `filter` and returns a required AST with syntax and light binding diagnostics,
47
- without establishing full type correctness. Both `ast` and `analyze` accept `format` and `discover_test`; their optional
48
- `tests` field and the direct `discover_tests` result use `AlephTestDiscoverySection`, with recursive sections and typed
49
- test metadata. Discovery does not execute source or tests. The client-level `timeout` applies to these methods too.
50
-
51
- The reviewed contract is pinned in `schemas/aleph-openapi.json`; maintenance and SDK parity checks are documented in
52
- [RFC 0013](../../../docs/rfcs/0013-workshop-tasks-and-aleph-execution.md).
20
+ Python SDK for the [Kothar API](https://docs.kotharcomputing.com/docs/the-forge/API).
53
21
 
54
22
  ## Workshop API tokens
55
23
 
@@ -58,8 +26,7 @@ credential when it is shown. Delete it to revoke access; create a replacement to
58
26
  Non-expiring tokens keep their issued grants until revoked.
59
27
 
60
28
  This example needs **Files → List (All files)** and **Targets → List**. Set the credential and the workspace/user IDs shown
61
- on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases. Never
62
- save credentials in source code, logs, or browser storage.
29
+ on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases.
63
30
 
64
31
  ```python
65
32
  import os
@@ -70,5 +37,19 @@ files = client.workspaces.id(os.environ["KOTHAR_WORKSPACE_ID"]).files.list()
70
37
  targets = client.users.id(os.environ["KOTHAR_USER_ID"]).targets.list()
71
38
  ```
72
39
 
73
- Creating tasks also needs read access to the chosen task definition and any specified target. Task search-schema
74
- discovery needs **Targets → List** and **Task definitions → List**. Add these grants explicitly when needed.
40
+ Creating tasks also needs read access to the chosen task definition and any specified target.
41
+
42
+ ## Aleph language server
43
+
44
+ The SDK also provides a separate anonymous HTTP client for the Aleph language
45
+ server. It does not use Kothar API authentication:
46
+
47
+ ```python
48
+ from kotharcomputing import AlephLanguageServerClient
49
+
50
+ aleph = AlephLanguageServerClient()
51
+ analysis = aleph.analyze('print("hello")', include_ast=True)
52
+ parsed = aleph.ast('print("hello")', format=True, discover_test=True)
53
+ tests = aleph.discover_tests('test "example" {}')
54
+ formatted = aleph.format('print( "hello" )')
55
+ ```
@@ -1,57 +0,0 @@
1
- # Kothar Python SDK
2
-
3
- Python SDK for the Kothar API generated from `schemas/openapi.yml`.
4
-
5
- Install the published SDK with `pip install kotharcomputing`. Starting with `1.0.0`,
6
- the package is released from `kothardev/kothar-platform` and its version follows the
7
- platform tag (`v1.0.0` publishes `1.0.0`). It replaces the package previously built
8
- in `kothar-backend`; use the workspace and target API examples below when updating
9
- applications from the legacy SDK. Existing PyPI releases remain available for pinned installations.
10
-
11
- ## Aleph language server
12
-
13
- The SDK also provides a separate anonymous HTTP client for the Aleph language
14
- server. It does not use Kothar API authentication:
15
-
16
- ```python
17
- from kotharcomputing import AlephLanguageServerClient
18
-
19
- aleph = AlephLanguageServerClient()
20
- analysis = aleph.analyze('print("hello")', include_ast=True)
21
- parsed = aleph.ast('print("hello")', format=True, discover_test=True)
22
- tests = aleph.discover_tests('test "example" {}')
23
- formatted = aleph.format('print( "hello" )')
24
- ```
25
-
26
- Pass `base_url=` or `AlephLanguageServerClientOptions` to use another Aleph
27
- deployment. The default endpoint is `https://aleph.kotharcomputing.com`.
28
-
29
- `ast` accepts an optional structured `filter` and returns a required AST with syntax and light binding diagnostics,
30
- without establishing full type correctness. Both `ast` and `analyze` accept `format` and `discover_test`; their optional
31
- `tests` field and the direct `discover_tests` result use `AlephTestDiscoverySection`, with recursive sections and typed
32
- test metadata. Discovery does not execute source or tests. The client-level `timeout` applies to these methods too.
33
-
34
- The reviewed contract is pinned in `schemas/aleph-openapi.json`; maintenance and SDK parity checks are documented in
35
- [RFC 0013](../../../docs/rfcs/0013-workshop-tasks-and-aleph-execution.md).
36
-
37
- ## Workshop API tokens
38
-
39
- Create an immutable token in **Account settings → API tokens**, explicitly select its permissions, and save the
40
- credential when it is shown. Delete it to revoke access; create a replacement to change metadata, expiration, or grants.
41
- Non-expiring tokens keep their issued grants until revoked.
42
-
43
- This example needs **Files → List (All files)** and **Targets → List**. Set the credential and the workspace/user IDs shown
44
- on the account page in environment variables. API tokens cannot use the session-only `personal` or `me` aliases. Never
45
- save credentials in source code, logs, or browser storage.
46
-
47
- ```python
48
- import os
49
- from kotharcomputing import KotharClient
50
-
51
- client = KotharClient(access_token=os.environ["KOTHAR_API_TOKEN"])
52
- files = client.workspaces.id(os.environ["KOTHAR_WORKSPACE_ID"]).files.list()
53
- targets = client.users.id(os.environ["KOTHAR_USER_ID"]).targets.list()
54
- ```
55
-
56
- Creating tasks also needs read access to the chosen task definition and any specified target. Task search-schema
57
- discovery needs **Targets → List** and **Task definitions → List**. Add these grants explicitly when needed.