donna 0.2.0__py3-none-any.whl → 0.2.2__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.
- donna/artifacts/intro.md +39 -0
- donna/artifacts/research/specs/report.md +163 -0
- donna/artifacts/research/work/research.md +198 -0
- donna/artifacts/rfc/specs/request_for_change.md +270 -0
- donna/artifacts/rfc/work/create.md +120 -0
- donna/artifacts/rfc/work/do.md +109 -0
- donna/artifacts/rfc/work/plan.md +68 -0
- donna/artifacts/usage/artifacts.md +55 -12
- donna/artifacts/usage/cli.md +114 -39
- donna/artifacts/usage/worlds.md +8 -2
- donna/cli/__main__.py +1 -1
- donna/cli/commands/artifacts.py +104 -17
- donna/cli/commands/sessions.py +8 -8
- donna/cli/commands/workspaces.py +42 -0
- donna/cli/errors.py +18 -0
- donna/cli/types.py +16 -9
- donna/cli/utils.py +2 -2
- donna/core/errors.py +1 -11
- donna/core/result.py +5 -8
- donna/core/utils.py +0 -3
- donna/lib/__init__.py +4 -0
- donna/lib/sources.py +1 -1
- donna/lib/worlds.py +2 -2
- donna/machine/action_requests.py +0 -5
- donna/machine/artifacts.py +8 -6
- donna/machine/primitives.py +5 -5
- donna/machine/sessions.py +13 -5
- donna/machine/state.py +4 -4
- donna/machine/tasks.py +4 -18
- donna/machine/templates.py +4 -2
- donna/primitives/artifacts/specification.py +13 -2
- donna/primitives/artifacts/workflow.py +11 -2
- donna/primitives/directives/list.py +86 -0
- donna/primitives/directives/view.py +52 -11
- donna/primitives/operations/finish_workflow.py +13 -2
- donna/primitives/operations/output.py +87 -0
- donna/primitives/operations/request_action.py +3 -9
- donna/primitives/operations/run_script.py +2 -2
- donna/protocol/utils.py +22 -0
- donna/workspaces/artifacts.py +238 -0
- donna/{world → workspaces}/artifacts_discovery.py +1 -1
- donna/{world → workspaces}/config.py +18 -11
- donna/{world → workspaces}/errors.py +55 -45
- donna/workspaces/initialization.py +78 -0
- donna/{world → workspaces}/markdown.py +21 -26
- donna/{world → workspaces}/sources/base.py +2 -2
- donna/{world → workspaces}/sources/markdown.py +8 -7
- donna/{world → workspaces}/templates.py +4 -4
- donna/workspaces/tmp.py +51 -0
- donna/{world → workspaces}/worlds/base.py +6 -3
- donna/{world → workspaces}/worlds/filesystem.py +30 -10
- donna/{world → workspaces}/worlds/python.py +12 -9
- donna-0.2.2.dist-info/METADATA +463 -0
- donna-0.2.2.dist-info/RECORD +92 -0
- {donna-0.2.0.dist-info → donna-0.2.2.dist-info}/WHEEL +1 -1
- donna/artifacts/work/do_it.md +0 -142
- donna/artifacts/work/do_it_fast.md +0 -98
- donna/artifacts/work/planning.md +0 -245
- donna/cli/commands/projects.py +0 -49
- donna/world/artifacts.py +0 -122
- donna/world/initialization.py +0 -42
- donna/world/tmp.py +0 -33
- donna/world/worlds/__init__.py +0 -0
- donna-0.2.0.dist-info/METADATA +0 -44
- donna-0.2.0.dist-info/RECORD +0 -85
- /donna/{artifacts/work → workspaces}/__init__.py +0 -0
- /donna/{world → workspaces}/sources/__init__.py +0 -0
- /donna/{world → workspaces/worlds}/__init__.py +0 -0
- {donna-0.2.0.dist-info → donna-0.2.2.dist-info}/entry_points.txt +0 -0
- {donna-0.2.0.dist-info → donna-0.2.2.dist-info}/licenses/LICENSE +0 -0
donna/world/initialization.py
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import tomllib
|
|
2
|
-
|
|
3
|
-
from donna.core import errors as core_errors
|
|
4
|
-
from donna.core import utils
|
|
5
|
-
from donna.core.result import Err, Ok, Result, unwrap_to_error
|
|
6
|
-
from donna.world import config
|
|
7
|
-
from donna.world import errors as world_errors
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@unwrap_to_error
|
|
11
|
-
def initialize_environment() -> Result[None, core_errors.ErrorsList]:
|
|
12
|
-
"""Initialize the environment for the application.
|
|
13
|
-
|
|
14
|
-
This function MUST be called before any other operations.
|
|
15
|
-
"""
|
|
16
|
-
project_dir = utils.discover_project_dir(config.DONNA_DIR_NAME).unwrap()
|
|
17
|
-
|
|
18
|
-
config.project_dir.set(project_dir)
|
|
19
|
-
|
|
20
|
-
config_dir = project_dir / config.DONNA_DIR_NAME
|
|
21
|
-
|
|
22
|
-
config.config_dir.set(config_dir)
|
|
23
|
-
|
|
24
|
-
config_path = config_dir / config.DONNA_CONFIG_NAME
|
|
25
|
-
|
|
26
|
-
if not config_path.exists():
|
|
27
|
-
config.config.set(config.Config())
|
|
28
|
-
return Ok(None)
|
|
29
|
-
|
|
30
|
-
try:
|
|
31
|
-
data = tomllib.loads(config_path.read_text())
|
|
32
|
-
except tomllib.TOMLDecodeError as e:
|
|
33
|
-
return Err([world_errors.ConfigParseFailed(config_path=config_path, details=str(e))])
|
|
34
|
-
|
|
35
|
-
try:
|
|
36
|
-
loaded_config = config.Config.model_validate(data)
|
|
37
|
-
except Exception as e:
|
|
38
|
-
return Err([world_errors.ConfigValidationFailed(config_path=config_path, details=str(e))])
|
|
39
|
-
|
|
40
|
-
config.config.set(loaded_config)
|
|
41
|
-
|
|
42
|
-
return Ok(None)
|
donna/world/tmp.py
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import pathlib
|
|
2
|
-
import shutil
|
|
3
|
-
import time
|
|
4
|
-
|
|
5
|
-
from donna.cli.types import FullArtifactIdArgument
|
|
6
|
-
from donna.world.config import config, config_dir
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def dir() -> pathlib.Path:
|
|
10
|
-
cfg = config()
|
|
11
|
-
tmp_path = cfg.tmp_dir
|
|
12
|
-
|
|
13
|
-
if not cfg.tmp_dir.is_absolute():
|
|
14
|
-
tmp_path = config_dir() / tmp_path
|
|
15
|
-
|
|
16
|
-
tmp_path.mkdir(parents=True, exist_ok=True)
|
|
17
|
-
|
|
18
|
-
return tmp_path
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def file_for_artifact(artifact_id: FullArtifactIdArgument, extention: str) -> pathlib.Path:
|
|
22
|
-
directory = dir()
|
|
23
|
-
|
|
24
|
-
directory.mkdir(parents=True, exist_ok=True)
|
|
25
|
-
|
|
26
|
-
normalized_extension = extention.lstrip(".")
|
|
27
|
-
artifact_file_name = f"{str(artifact_id).replace('/', '.')}.{int(time.time() * 1000)}.{normalized_extension}"
|
|
28
|
-
|
|
29
|
-
return directory / artifact_file_name
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def clear() -> None:
|
|
33
|
-
shutil.rmtree(dir())
|
donna/world/worlds/__init__.py
DELETED
|
File without changes
|
donna-0.2.0.dist-info/METADATA
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: donna
|
|
3
|
-
Version: 0.2.0
|
|
4
|
-
Summary: A deterministic workflow and state orchestration engine for LLM agents.
|
|
5
|
-
License-Expression: BSD-3-Clause
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
Keywords: ai,agent,cli,llm,workflow
|
|
8
|
-
Author: Aliaksei Yaletski
|
|
9
|
-
Author-email: a.eletsky@gmail.com
|
|
10
|
-
Requires-Python: >=3.12,<4.0
|
|
11
|
-
Classifier: Development Status :: 3 - Alpha
|
|
12
|
-
Classifier: Environment :: Console
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
-
Classifier: Topic :: Software Development :: Build Tools
|
|
18
|
-
Classifier: Topic :: Utilities
|
|
19
|
-
Requires-Dist: jinja2 (>=3.1,<3.2)
|
|
20
|
-
Requires-Dist: markdown-it-py (>=4.0,<4.1)
|
|
21
|
-
Requires-Dist: mdformat (>=1.0.0,<1.1.0)
|
|
22
|
-
Requires-Dist: pydantic (>=2.12,<2.13)
|
|
23
|
-
Requires-Dist: typer (>=0.20,<0.21)
|
|
24
|
-
Project-URL: Homepage, https://github.com/Tiendil/donna
|
|
25
|
-
Project-URL: Issues, https://github.com/Tiendil/donna/issues
|
|
26
|
-
Project-URL: Repository, https://github.com/Tiendil/donna
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
# State Machines for your AI Agents
|
|
30
|
-
|
|
31
|
-
`Donna` is a CLI tool that helps manage the work of AI agents like Codex.
|
|
32
|
-
|
|
33
|
-
It is designed to to invert control flow: instead of agents deciding what to do next, the `donna` tells agents what to do next by following predefined workflows.
|
|
34
|
-
|
|
35
|
-
The core idea is that most of high-level workflows are more algorithmic than it may seem at first glance. For example, it may be difficult to fix a particular type issue in the codebase, but the overall process of polishing the codebase is quite linear:
|
|
36
|
-
|
|
37
|
-
1. Ensure all tests pass.
|
|
38
|
-
2. Ensure the code is formatted correctly.
|
|
39
|
-
3. Ensure there are no linting errors.
|
|
40
|
-
4. Go to the step 1 if you changed something in the process.
|
|
41
|
-
5. Finish.
|
|
42
|
-
|
|
43
|
-
We may need coding agents on the each step of the process, but there no reason for agents to manage the whole grooming loop by themselves — it take longer time, spends tokens and may lead to confusion of agents.
|
|
44
|
-
|
donna-0.2.0.dist-info/RECORD
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
donna/__init__.py,sha256=lEC7l3wDCBiC5gw56XkAeBW1XJA52pck7SFR1_CUals,41
|
|
2
|
-
donna/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
donna/artifacts/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
donna/artifacts/usage/artifacts.md,sha256=slHrJRmFYiXxOQnPWHY5bb3LOa1VLmRnWS6FvKFWlHs,11241
|
|
5
|
-
donna/artifacts/usage/cli.md,sha256=GzWaGK-QB_Bg3A1czVzIPmWLcR7565hBW4gEkQHAtZo,6753
|
|
6
|
-
donna/artifacts/usage/worlds.md,sha256=EBMGLg6ae_Paiaeas5CyCaOqs13xXu9tp6IQASyIdYs,1848
|
|
7
|
-
donna/artifacts/work/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
donna/artifacts/work/do_it.md,sha256=bCYeF45vET83qPdh4m5n4QH8wSUjdsbcSZzsHKZ_Amo,5594
|
|
9
|
-
donna/artifacts/work/do_it_fast.md,sha256=2TSAvrUlNC7PUCU1F1YNiu3KtTiBLO501XdxVarru3s,3594
|
|
10
|
-
donna/artifacts/work/planning.md,sha256=C2kbUopoGdWM7CHmTTCP0Sbetff8zYkMqOFXuNbjdRE,14375
|
|
11
|
-
donna/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
donna/cli/__main__.py,sha256=sKI9NNX2pKkuxmyzgMvULCtNOBHQYW1BGPhxOK4ZPvI,222
|
|
13
|
-
donna/cli/application.py,sha256=rIEseTvPZgX4tZ23fTX49LF0XLfyzTO8gtpA8G80MTI,466
|
|
14
|
-
donna/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
donna/cli/commands/artifacts.py,sha256=E_84OwE08Cb59P_qFavpe0HdvuhhCCDJryb28EaGwH8,3609
|
|
16
|
-
donna/cli/commands/projects.py,sha256=bu257fUnV-RhYJUw_lUNW9w17XS2AFbf2PP5bqr4hiY,1198
|
|
17
|
-
donna/cli/commands/sessions.py,sha256=eTu65EBB2kve43WoGnK4oNsTGXz2Pas8t1fwurKPkec,2122
|
|
18
|
-
donna/cli/types.py,sha256=YsBPGPSV6h1f8dNvnQmWefnW2s_ARRwG75_u2DXSm-8,3546
|
|
19
|
-
donna/cli/utils.py,sha256=kQm-bYDQu-xLZJXT59F6w3HlPjAiYs9EIpK9aacxz_E,1421
|
|
20
|
-
donna/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
donna/core/entities.py,sha256=Y3udcI1ykWDI_yPqCX6JTuDmF81BxO0PnnJzzD5uMoM,753
|
|
22
|
-
donna/core/errors.py,sha256=k6Dx4tNids64mupnpnkMF2dEVkfMF5Bm04Rx2fjWQYM,3771
|
|
23
|
-
donna/core/result.py,sha256=nlugpkq0bdeOT626dnwLfF7fTvidKvTmjiMwKAiX-BA,2392
|
|
24
|
-
donna/core/utils.py,sha256=BViEifQWxZ8ju2427VKk1P_xk4fVVOHTAdJIv-7Oyyk,1276
|
|
25
|
-
donna/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
-
donna/domain/errors.py,sha256=jewM3wYUCGLwNb8tvHkJ35-Y59ezJKgWy7pr_Utk7iA,1253
|
|
27
|
-
donna/domain/ids.py,sha256=CMEBRj6i2vjVi74TtUcjLTALn3MqKsEbs-Iv463mjVg,14678
|
|
28
|
-
donna/lib/__init__.py,sha256=4g2r8dSat9yxkmKPpX8f-ANbTp6HDNXM5K_L2c_Ihb4,834
|
|
29
|
-
donna/lib/sources.py,sha256=96RMyWBFL0Y6MxORtl7E4fE-dDECH0CYPcAA_v33UB8,177
|
|
30
|
-
donna/lib/worlds.py,sha256=5uepMT4aJJYwz2vqVQ9vcymjygaUKnBn_V4lBizmvH0,276
|
|
31
|
-
donna/machine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
donna/machine/action_requests.py,sha256=Tdp0Q64lCZLjrzOsLbxFaZ1fJNVKBRXmc8-HmBuhZ7w,1377
|
|
33
|
-
donna/machine/artifacts.py,sha256=_Gwsu5lasnFF0GuWXMFUL-3FOZiyX9GcAzVXgZr-3o8,6603
|
|
34
|
-
donna/machine/changes.py,sha256=TlgMA70u0ffRvwKVBwXEgEk1bp4m9w9MsVxtishX9Sw,2463
|
|
35
|
-
donna/machine/errors.py,sha256=45EPNC12rRT2pdgd2b9HMXCP0aon4sxo9DdUfxXeMnQ,4956
|
|
36
|
-
donna/machine/operations.py,sha256=CHXPy8hDYNqE5woVMj_lu2p4wgl7fqRxO0Dz0v1t4zI,761
|
|
37
|
-
donna/machine/primitives.py,sha256=DuCecXLwIsYOD3fzFp5ZQ08b1_K4Xlol6SDvM09X2ms,3267
|
|
38
|
-
donna/machine/sessions.py,sha256=eA_SV8zDtjKg3vA6wmbT7P14RK68TA2XbFAZMLYuyXc,6880
|
|
39
|
-
donna/machine/state.py,sha256=E5ckioJ8K5Mv_IvJyNf7O15tW10hSYf6oA79x3WiZKU,8101
|
|
40
|
-
donna/machine/tasks.py,sha256=10hPk325VR5Ii6vytqeNRq9rgGCEM8SGoqrvgz1lQSA,2826
|
|
41
|
-
donna/machine/templates.py,sha256=wB6s41fTaHD-GuL3zPn1JTID5scfpUgVzBiuFfyYUtU,2474
|
|
42
|
-
donna/primitives/__init__.py,sha256=CfJhz3TLdFxYbqCXioWVAIKGQ2tAMwXwL_Fg3A68Dqo,53
|
|
43
|
-
donna/primitives/artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
-
donna/primitives/artifacts/specification.py,sha256=3mzZLIMwKhDJ-GxJ0X0vW1Xh-PqFXwg9EDy_jooS8eI,461
|
|
45
|
-
donna/primitives/artifacts/workflow.py,sha256=7YlJ7ohpeWnuGhnoRqlFTZGq-54STLL_BDTYYGWz4sc,7684
|
|
46
|
-
donna/primitives/directives/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
-
donna/primitives/directives/goto.py,sha256=uJdMJe3leJPSl_0PU4jd2AbHFJsJkf-x6rKhn4hKZd8,1679
|
|
48
|
-
donna/primitives/directives/task_variable.py,sha256=KvxY8ZOKFh6alkBhgDvkWzIJBfRNP4oYKRJ0SgHzO_g,2959
|
|
49
|
-
donna/primitives/directives/view.py,sha256=BiTZULx1ZC0z4V_Z6EaG3bYLcFna-nV_akaVXAvxJRo,1558
|
|
50
|
-
donna/primitives/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
-
donna/primitives/operations/finish_workflow.py,sha256=qRSjemF2o2Lim-GGrnjBjouxPMzDS9M-QEw_Weg0Zu0,1494
|
|
52
|
-
donna/primitives/operations/request_action.py,sha256=cwNZl5Av1ko3DU4fcO62xCFJqvIUmm7ff_BvTaGmAhA,3041
|
|
53
|
-
donna/primitives/operations/run_script.py,sha256=Pl6llF9_Ck-WXn_4-cVfxY9K2WyrbEoOfQJGSxA__Xs,9338
|
|
54
|
-
donna/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
-
donna/protocol/cell_shortcuts.py,sha256=dZVCzoaPu09IYEA5g5gYPhR-q8MpgmehcYti1z9BBuI,385
|
|
56
|
-
donna/protocol/cells.py,sha256=jQCM-l31Kt7gEBXgvb7Ph5Fstbz9lf0lEUbH0bgNlWg,1348
|
|
57
|
-
donna/protocol/errors.py,sha256=u54fxMtJMWL8cbOLWU0acrmxV7Q8uHnyT1NFw959SMI,486
|
|
58
|
-
donna/protocol/formatters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
donna/protocol/formatters/automation.py,sha256=I_I-b8bixuXBlKqn2ryHDKSdRJy77FzDATJi-jhEPWI,928
|
|
60
|
-
donna/protocol/formatters/base.py,sha256=PGrAgxiEtZKyg1wPePQMt5syOr6IpC4ydh5rMElaojE,405
|
|
61
|
-
donna/protocol/formatters/human.py,sha256=WvoZVYlD4H3MftDkpEEP_RtyZnzJhUWKNecKgm3FoXg,1168
|
|
62
|
-
donna/protocol/formatters/llm.py,sha256=z_2djZFaVVHjLYFMneUrYp5sA-EvtPuHUDzGKV1ogu4,1266
|
|
63
|
-
donna/protocol/modes.py,sha256=vFDjciPdPy26XlLBGrgAn1kAVW7EJAHrccGcJrK7vUo,960
|
|
64
|
-
donna/protocol/nodes.py,sha256=aP5IVOouZe6akSdfzPpfcGuZLbxkEieTE6j6SuVuTUU,1974
|
|
65
|
-
donna/world/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
donna/world/artifacts.py,sha256=qCACfo6ZNX1UypM2bHIiYRnMNDjh-PVJY4IumEpCB0c,4316
|
|
67
|
-
donna/world/artifacts_discovery.py,sha256=8-IYannZodL65paQxXjk_sJ_cATXXe9252FF-OAVqpo,2798
|
|
68
|
-
donna/world/config.py,sha256=XS4r1Y3TKmKJZGLqywGDa8U3uyG-ZeHWKZTp9G4v4yw,6355
|
|
69
|
-
donna/world/errors.py,sha256=fGB89o2qRNu8ojU71SJvsc432x4C3P31Kn4k1i7PYWc,7799
|
|
70
|
-
donna/world/initialization.py,sha256=AfA79qVoa7iJo16ut0NonHe54oh_yaOiurps3ftjldg,1268
|
|
71
|
-
donna/world/markdown.py,sha256=4KDEG0B4P2G6dKO1S8eNLY_XLKiw4d8aLoP_HEmEvm0,7250
|
|
72
|
-
donna/world/sources/__init__.py,sha256=IRwKWnqQKh1ase742jhdadBcS4E9Hxr6j_l9Li6wwfw,70
|
|
73
|
-
donna/world/sources/base.py,sha256=P5O2O1A7_GWqJvVVTwjg_fCH0TYIWUJpAjacB0LZBqk,2010
|
|
74
|
-
donna/world/sources/markdown.py,sha256=sQ7Tgk0-xbPF0h7o77epq58wa5zt9lkGzT9EpXvMcFo,9669
|
|
75
|
-
donna/world/templates.py,sha256=bcrDvZBBRfDdXYmh1jevzDBVDT-2hmMRdGkd0xx2RVQ,6054
|
|
76
|
-
donna/world/tmp.py,sha256=oKXMt3WDn10hYlYxwuSHC7ZpD7sDjl06RqNdfJ58ZAc,791
|
|
77
|
-
donna/world/worlds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
-
donna/world/worlds/base.py,sha256=3SZp44lzmYmve1XiXyUX5oD6NWSvrXqg7aar0dO7lsM,2465
|
|
79
|
-
donna/world/worlds/filesystem.py,sha256=W18pSCJQAkeP5gn_FkIU-FIorrXTfMipUGc1FjbqfOo,6648
|
|
80
|
-
donna/world/worlds/python.py,sha256=R9BOZJJT9MomNzTM0L19SO43DAwQY_R-QL9JtrcjPtc,7035
|
|
81
|
-
donna-0.2.0.dist-info/METADATA,sha256=4N8NZmx4hgJCowL7fT7ODPH7Xr8imdKiPGaXgxlpPXE,2012
|
|
82
|
-
donna-0.2.0.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
|
|
83
|
-
donna-0.2.0.dist-info/entry_points.txt,sha256=r2W_yOzauooYCu312OQwCycIN1UjVnO5paPpS2EDZqo,48
|
|
84
|
-
donna-0.2.0.dist-info/licenses/LICENSE,sha256=KiF6_RVxH0MLeHZZtc8ag497X-c6oPmk-0OOf9qQDDk,1504
|
|
85
|
-
donna-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|