ferp 0.7.1__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.
- ferp/__init__.py +3 -0
- ferp/__main__.py +4 -0
- ferp/__version__.py +1 -0
- ferp/app.py +9 -0
- ferp/cli.py +160 -0
- ferp/core/__init__.py +0 -0
- ferp/core/app.py +1312 -0
- ferp/core/bundle_installer.py +245 -0
- ferp/core/command_provider.py +77 -0
- ferp/core/dependency_manager.py +59 -0
- ferp/core/fs_controller.py +70 -0
- ferp/core/fs_watcher.py +144 -0
- ferp/core/messages.py +49 -0
- ferp/core/path_actions.py +124 -0
- ferp/core/paths.py +3 -0
- ferp/core/protocols.py +8 -0
- ferp/core/script_controller.py +515 -0
- ferp/core/script_protocol.py +35 -0
- ferp/core/script_runner.py +421 -0
- ferp/core/settings.py +16 -0
- ferp/core/settings_store.py +69 -0
- ferp/core/state.py +156 -0
- ferp/core/task_store.py +164 -0
- ferp/core/transcript_logger.py +95 -0
- ferp/domain/__init__.py +0 -0
- ferp/domain/scripts.py +29 -0
- ferp/fscp/host/__init__.py +11 -0
- ferp/fscp/host/host.py +439 -0
- ferp/fscp/host/managed_process.py +113 -0
- ferp/fscp/host/process_registry.py +124 -0
- ferp/fscp/protocol/__init__.py +13 -0
- ferp/fscp/protocol/errors.py +2 -0
- ferp/fscp/protocol/messages.py +55 -0
- ferp/fscp/protocol/schemas/__init__.py +0 -0
- ferp/fscp/protocol/schemas/fscp/1.0/cancel.json +16 -0
- ferp/fscp/protocol/schemas/fscp/1.0/definitions.json +29 -0
- ferp/fscp/protocol/schemas/fscp/1.0/discriminator.json +14 -0
- ferp/fscp/protocol/schemas/fscp/1.0/envelope.json +13 -0
- ferp/fscp/protocol/schemas/fscp/1.0/exit.json +20 -0
- ferp/fscp/protocol/schemas/fscp/1.0/init.json +36 -0
- ferp/fscp/protocol/schemas/fscp/1.0/input_response.json +21 -0
- ferp/fscp/protocol/schemas/fscp/1.0/log.json +21 -0
- ferp/fscp/protocol/schemas/fscp/1.0/message.json +23 -0
- ferp/fscp/protocol/schemas/fscp/1.0/progress.json +23 -0
- ferp/fscp/protocol/schemas/fscp/1.0/request_input.json +47 -0
- ferp/fscp/protocol/schemas/fscp/1.0/result.json +16 -0
- ferp/fscp/protocol/schemas/fscp/__init__.py +0 -0
- ferp/fscp/protocol/state.py +16 -0
- ferp/fscp/protocol/validator.py +123 -0
- ferp/fscp/scripts/__init__.py +0 -0
- ferp/fscp/scripts/runtime/__init__.py +4 -0
- ferp/fscp/scripts/runtime/__main__.py +40 -0
- ferp/fscp/scripts/runtime/errors.py +14 -0
- ferp/fscp/scripts/runtime/io.py +64 -0
- ferp/fscp/scripts/runtime/script.py +149 -0
- ferp/fscp/scripts/runtime/state.py +17 -0
- ferp/fscp/scripts/runtime/worker.py +13 -0
- ferp/fscp/scripts/sdk.py +548 -0
- ferp/fscp/transcript/__init__.py +3 -0
- ferp/fscp/transcript/events.py +14 -0
- ferp/resources/__init__.py +0 -0
- ferp/services/__init__.py +3 -0
- ferp/services/file_listing.py +120 -0
- ferp/services/monday_sync.py +155 -0
- ferp/services/releases.py +214 -0
- ferp/services/scripts.py +90 -0
- ferp/services/update_check.py +130 -0
- ferp/styles/index.tcss +638 -0
- ferp/themes/themes.py +238 -0
- ferp/widgets/__init__.py +17 -0
- ferp/widgets/dialogs.py +167 -0
- ferp/widgets/file_tree.py +991 -0
- ferp/widgets/forms.py +146 -0
- ferp/widgets/output_panel.py +244 -0
- ferp/widgets/panels.py +13 -0
- ferp/widgets/process_list.py +158 -0
- ferp/widgets/readme_modal.py +59 -0
- ferp/widgets/scripts.py +192 -0
- ferp/widgets/task_capture.py +74 -0
- ferp/widgets/task_list.py +493 -0
- ferp/widgets/top_bar.py +110 -0
- ferp-0.7.1.dist-info/METADATA +128 -0
- ferp-0.7.1.dist-info/RECORD +87 -0
- ferp-0.7.1.dist-info/WHEEL +5 -0
- ferp-0.7.1.dist-info/entry_points.txt +2 -0
- ferp-0.7.1.dist-info/licenses/LICENSE +21 -0
- ferp-0.7.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ferp
|
|
3
|
+
Version: 0.7.1
|
|
4
|
+
Summary: Terminal-first file navigator and FSCP automation workbench built with Textual.
|
|
5
|
+
Author: Brandon Johnson
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/zappbrandigan/ferp
|
|
8
|
+
Project-URL: Documentation, https://github.com/zappbrandigan/ferp#readme
|
|
9
|
+
Project-URL: Issues, https://github.com/zappbrandigan/ferp/issues
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Topic :: System :: Shells
|
|
13
|
+
Classifier: Topic :: Utilities
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Requires-Python: >=3.13
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: jsonschema>=4.21
|
|
21
|
+
Requires-Dist: watchdog>=4.0
|
|
22
|
+
Requires-Dist: textual>=7.4.0
|
|
23
|
+
Requires-Dist: platformdirs>=4.2
|
|
24
|
+
Requires-Dist: requests>=2.32
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pypdf>=6.6; extra == "dev"
|
|
27
|
+
Requires-Dist: extract-msg>=0.55.0; extra == "dev"
|
|
28
|
+
Requires-Dist: openpyxl>=3.1; extra == "dev"
|
|
29
|
+
Requires-Dist: xlwings>=0.33; extra == "dev"
|
|
30
|
+
Requires-Dist: googletrans==4.0.2; extra == "dev"
|
|
31
|
+
Requires-Dist: Unidecode>=1.3.8; extra == "dev"
|
|
32
|
+
Requires-Dist: pywin32>=306; platform_system == "Windows" and extra == "dev"
|
|
33
|
+
Requires-Dist: pdfplumber>=0.11.8; extra == "dev"
|
|
34
|
+
Requires-Dist: reportlab>=4.4.9; extra == "dev"
|
|
35
|
+
Requires-Dist: py7zr>=1.1.2; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
37
|
+
Requires-Dist: textual-dev>=1.8.0; extra == "dev"
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
|
|
40
|
+
# FERP – For Executing Repetitive Processes
|
|
41
|
+
|
|
42
|
+
FERP is a terminal-friendly file manager and automation workbench. It combines an interactive file navigator, contextual metadata inspection, and a protocol-driven script runner so you can explore directories and execute repeatable workflows through a TUI—without requiring terminal knowledge.
|
|
43
|
+
|
|
44
|
+
## Highlights
|
|
45
|
+
|
|
46
|
+
- **Keyboard-first navigation**
|
|
47
|
+
- A full list of keys are available in the app.
|
|
48
|
+
- **Context panes**
|
|
49
|
+
- Script list reads from the user config `config.json` (platformdirs).
|
|
50
|
+
- Output panel streams FSCP results and records transcripts under the user data `logs` directory.
|
|
51
|
+
- README modal (Enter on a script) displays bundled documentation.
|
|
52
|
+
- **Managed script runtime**
|
|
53
|
+
- Scripts execute via the FSCP host ↔ script protocol.
|
|
54
|
+
- Interactive prompts, confirmations, progress, and structured results are supported.
|
|
55
|
+
- Logs are timestamped and automatically pruned (default 50 files / 14 days).
|
|
56
|
+
|
|
57
|
+
## Quick Start
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pipx install ferp
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
> [!NOTE]
|
|
64
|
+
> To use the default scripts, open the command palette (`Ctrl+P`) and select **Install/Update Default Scripts**.
|
|
65
|
+
|
|
66
|
+
> [!WARNING]
|
|
67
|
+
> This option is intended for users who do not wish to manage scripts manually. It will remove any existing scripts you have installed.
|
|
68
|
+
>
|
|
69
|
+
> If you prefer to install scripts individually, create a bundle for the desired script using the source files from
|
|
70
|
+
> [ferp-scripts](https://github.com/zappbrandigan/ferp-scripts).
|
|
71
|
+
|
|
72
|
+
## Configuring Scripts
|
|
73
|
+
|
|
74
|
+
Scripts are declared in your user config `config.json` (created on first script install). Each entry defines:
|
|
75
|
+
|
|
76
|
+
- `script`: path to the executable (e.g. `scripts/ferp.zip_dir/script.py`).
|
|
77
|
+
- `target`: `current_directory`, `highlighted_file`, or `highlighted_directory`.
|
|
78
|
+
- `file_extensions`: optional list of suffixes (for `highlighted_file` targets).
|
|
79
|
+
- Optional README at `scripts/<id>/readme.md`.
|
|
80
|
+
|
|
81
|
+
Each script lives under `scripts/<id>/` (the directory name matches the fully-qualified ID, such as `ferp.zip_dir`). Inside the directory:
|
|
82
|
+
|
|
83
|
+
- `script.py` contains the executable FSCP script.
|
|
84
|
+
- `readme.md` provides the optional documentation shown inside FERP.
|
|
85
|
+
|
|
86
|
+
### Dev toggle for script config
|
|
87
|
+
|
|
88
|
+
During development you can point FERP at the repo copy of `ferp/scripts/config.json` instead of the user config file:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
FERP_DEV_CONFIG=1 python -m ferp
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
When enabled, FERP reads the config directly from the repository and skips the one-time copy into the user config directory.
|
|
95
|
+
|
|
96
|
+
## Authoring FSCP Scripts
|
|
97
|
+
|
|
98
|
+
Python scripts executed from FERP speak the [FSCP](./ferp/fscp) protocol. See
|
|
99
|
+
`SCRIPT_AUTHORS.md` for the SDK guide, examples, logging, cancellation, cleanup,
|
|
100
|
+
and packaging details.
|
|
101
|
+
|
|
102
|
+
## Terminal Commands
|
|
103
|
+
|
|
104
|
+
FERP opens your system terminal in the current directory (shown in the top bar).
|
|
105
|
+
|
|
106
|
+
- Open a terminal using `Ctrl+t`.
|
|
107
|
+
- The spawned terminal inherits the current working directory.
|
|
108
|
+
- On Windows system, prefers PowerShell and falls back to CommandPrompt.
|
|
109
|
+
|
|
110
|
+
## Task List
|
|
111
|
+
|
|
112
|
+
FERP includes a lightweight task list for quick capture and review.
|
|
113
|
+
|
|
114
|
+
- Press `t` to add a task from anywhere in the UI.
|
|
115
|
+
- Press `l` to open the task list and review or mark tasks as complete.
|
|
116
|
+
- Tag tasks with `@` for text highlighting and filtering.
|
|
117
|
+
- Toggle completion status with the space bar.
|
|
118
|
+
- The task status indicator updates automatically as tasks are completed.
|
|
119
|
+
|
|
120
|
+
## Other Features
|
|
121
|
+
|
|
122
|
+
- **Script catalog refresh**: Reload the script list after editing config.
|
|
123
|
+
- **Default script updates**: Pull the latest default scripts from the release feed.
|
|
124
|
+
- **Process list**: View and stop running scripts from the command palette.
|
|
125
|
+
- **Tasks**: Capture quick tasks and review them in the task list.
|
|
126
|
+
- **Themes**: Switch themes from the command palette.
|
|
127
|
+
- **Startup directory**: Set the default path Ferp opens on launch.
|
|
128
|
+
- **Logs**: Open the latest transcript log from the command palette.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
ferp/__init__.py,sha256=OuqD7ccFgzZpmQpnGVPU2O_U2ITvETGXiWZ0KHN5j9g,64
|
|
2
|
+
ferp/__main__.py,sha256=g5qi-I4ojhTuy_0u3bVskW8xnqLTAr3BbWfbsGsHT4A,65
|
|
3
|
+
ferp/__version__.py,sha256=2KJZDSMOG7KS82AxYOrZ4ZihYxX0wjfUjDsIZh3L024,22
|
|
4
|
+
ferp/app.py,sha256=z9oVlCS9ugtDgponbzXSaxzP-hY_d07XrthIiZmPmo0,110
|
|
5
|
+
ferp/cli.py,sha256=fueoVXXwbX2Zv6eMMOv23z9PMSlCMVqHzTkjVBYIYxo,4796
|
|
6
|
+
ferp/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
ferp/core/app.py,sha256=Ds-5nv4w-ar1tblkoI8z1K7oMM2c8BrPS6bhK0fIP4s,49372
|
|
8
|
+
ferp/core/bundle_installer.py,sha256=V4BG-BlMvMbcNB2uFG1quQM-qqFDYj87nyusxvvDVUk,8674
|
|
9
|
+
ferp/core/command_provider.py,sha256=Qs0BA41JCE8KT5PR1sP2X1LDc_U5vv_Y9cOYtJ6xvU0,2518
|
|
10
|
+
ferp/core/dependency_manager.py,sha256=5pqsNYIE4sKuw7w5ckRPJPR0le8RcNQ4G2xPYZjKB8k,2191
|
|
11
|
+
ferp/core/fs_controller.py,sha256=oM8cS_om92fk_m6QGAt5JyjYn4-fnWnGNf5FimFS1oU,1959
|
|
12
|
+
ferp/core/fs_watcher.py,sha256=g4q6WXvgoanmhcshXMc3S0poQLIrQrQaQPg4v-nf1Mg,4861
|
|
13
|
+
ferp/core/messages.py,sha256=lzqkG1WMBcaYx2srKOo5wmYRZK92j3Vvw1Kh9ZH7fJw,1185
|
|
14
|
+
ferp/core/path_actions.py,sha256=uUSlBllrTH_Oh0XJ232iFm4FiywKlXcxAlmLlNUwgnQ,3945
|
|
15
|
+
ferp/core/paths.py,sha256=nKvYBbk6ngmFbTYQlv56LdVqi-EK1mYzsurf-U6YTvE,114
|
|
16
|
+
ferp/core/protocols.py,sha256=aGsM9zubcU1HiIu1wJvwc24xNWN8ZDZ6779cfKMWGs4,156
|
|
17
|
+
ferp/core/script_controller.py,sha256=r1p35yAcSOnh2rXMMmVGkSD5XPSVHipSKMKaaN6H8HU,17654
|
|
18
|
+
ferp/core/script_protocol.py,sha256=E2rYfg9h5XFrhpxbMP0gE6OAGRPlSohCYN427flRIdA,754
|
|
19
|
+
ferp/core/script_runner.py,sha256=xjknf4bTz-PKboJ_ReLsLzTrpTrmBdVJK-GtdBdJXBQ,13782
|
|
20
|
+
ferp/core/settings.py,sha256=zCY8lfYIXrPtELPc304cnuuPUKk1F7lUcvozznkVHhs,501
|
|
21
|
+
ferp/core/settings_store.py,sha256=FfypSIdzHPeYexTFZrJxTQh-ia-ojppGQgxgNyfmf5M,2316
|
|
22
|
+
ferp/core/state.py,sha256=l7uaQp9-82p-hAFClGshmX2WCYoCeLqSG8oDRQMYvcI,5196
|
|
23
|
+
ferp/core/task_store.py,sha256=teMDEy9PT503cCXQV_rbS5R4iMxBsywzL0fxpBFY9ak,5182
|
|
24
|
+
ferp/core/transcript_logger.py,sha256=kUreRHfGZE0EfX0U8ZC_itQ1yudsDOZoSuwjQG1Byas,2885
|
|
25
|
+
ferp/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
ferp/domain/scripts.py,sha256=XkPoh_JPrSXuIYd9gJbZ4i5FpH2uwWklKwo3Hibv-6Q,563
|
|
27
|
+
ferp/fscp/host/__init__.py,sha256=LU-IOmZEAVBhUhrVZLTN6rb-jwdR-dO68IL7bnRswLM,261
|
|
28
|
+
ferp/fscp/host/host.py,sha256=SzesYOgcg7JU5p6N9vXaFdrbAQm27l84r50MT3ls_zI,15180
|
|
29
|
+
ferp/fscp/host/managed_process.py,sha256=8x_tsu9hejIJstTKYu3YNr3uEm7x2cM5YmsjutXz1rE,3079
|
|
30
|
+
ferp/fscp/host/process_registry.py,sha256=QFy7gnABUzsQyaeBnyBAvWExP_mm0OBjLhQ0hpb_rAM,3547
|
|
31
|
+
ferp/fscp/protocol/__init__.py,sha256=7q4bujRjdnOq2q8jC3116ITN5JiiPxZ5EKje_WfZJW8,309
|
|
32
|
+
ferp/fscp/protocol/errors.py,sha256=jNSgtCQe8WbSklZCv4dnec8HRlMutT6TqwqBuXioRyU,90
|
|
33
|
+
ferp/fscp/protocol/messages.py,sha256=Q4ZRza3BFVN55YqqtfUv9pXrcHs47Qnw-tne7-5T2VQ,1331
|
|
34
|
+
ferp/fscp/protocol/state.py,sha256=qCt82AGCZYJ6vl2FCvl5VBMjN361TjHVgBIkbhsg41o,544
|
|
35
|
+
ferp/fscp/protocol/validator.py,sha256=93pvIyH63x9zAxiOAsUPvj3rTpxIgjrVTqLim1AiqyI,3442
|
|
36
|
+
ferp/fscp/protocol/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
+
ferp/fscp/protocol/schemas/fscp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
ferp/fscp/protocol/schemas/fscp/1.0/cancel.json,sha256=dDa8sADAKQu7RKLILlnWLKzyupKWUce7240XWzhTpK0,352
|
|
39
|
+
ferp/fscp/protocol/schemas/fscp/1.0/definitions.json,sha256=4b0kbetz9XU3Dbyd8jUvGZ5RqXiIWjVz9UI4zsthcAQ,553
|
|
40
|
+
ferp/fscp/protocol/schemas/fscp/1.0/discriminator.json,sha256=9aU7UtltzQ43ZBqpRXfbOaT9OUiwISfE1Y8U-e3lSVs,397
|
|
41
|
+
ferp/fscp/protocol/schemas/fscp/1.0/envelope.json,sha256=rE5ZBXMITEsFd0ceZa-cLS_K4032HsOZW5EZEsJ9P4Y,422
|
|
42
|
+
ferp/fscp/protocol/schemas/fscp/1.0/exit.json,sha256=oeXhYuUd6TCf1Oijk9oJrQ0cG_v2br7B9sYf5be6YJM,461
|
|
43
|
+
ferp/fscp/protocol/schemas/fscp/1.0/init.json,sha256=tLY7sjA7e5PHO5_5s_d_g5zGxVadGChrEY5ohSa-evc,963
|
|
44
|
+
ferp/fscp/protocol/schemas/fscp/1.0/input_response.json,sha256=2A8P5b-ntyVNXRsOAuQEHfYy0drNH6uf2t9lJOyMJmg,528
|
|
45
|
+
ferp/fscp/protocol/schemas/fscp/1.0/log.json,sha256=1q1wH98xePvN_c9raUxawkpXKpF9EZIF07xk1vydQ7k,548
|
|
46
|
+
ferp/fscp/protocol/schemas/fscp/1.0/message.json,sha256=7wcoIPuyKSq33Lnn_ZiOQgLl0h2OXaxXMOvLLXyIVTI,520
|
|
47
|
+
ferp/fscp/protocol/schemas/fscp/1.0/progress.json,sha256=0GBRO8GOs_cNXEJ-5STHB4j3y1PzLaI8ZdXaCUEieR8,632
|
|
48
|
+
ferp/fscp/protocol/schemas/fscp/1.0/request_input.json,sha256=P-VWIsb3xyqiYQHhpb7hzKjRZoIjGB1m-mlYv5BX2Mw,1500
|
|
49
|
+
ferp/fscp/protocol/schemas/fscp/1.0/result.json,sha256=wgCy-dfcGIhxvI8ZvH-9EGLU1tU6mFb0mXCRN-kdaBY,351
|
|
50
|
+
ferp/fscp/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
ferp/fscp/scripts/sdk.py,sha256=SS_3swkT-obDp2GTQlEpan92YUEbg5dyPw7JyxgaPw4,17132
|
|
52
|
+
ferp/fscp/scripts/runtime/__init__.py,sha256=sGCJ0hlraOzxRY6f-K7_6RICPnzAHDagZkgbJv9py1w,160
|
|
53
|
+
ferp/fscp/scripts/runtime/__main__.py,sha256=yw2-x3n1DDLNuvzJU3ws4CfYvc9oypOiPzfSJF2OFEc,888
|
|
54
|
+
ferp/fscp/scripts/runtime/errors.py,sha256=VbRdFwrov4kEFthaihDasGfNYpZjGLAK2_BRreHnjNY,357
|
|
55
|
+
ferp/fscp/scripts/runtime/io.py,sha256=8g-mvXqguo9usgJqSrVaov-quyuQkBgtsMbAad_pKac,1705
|
|
56
|
+
ferp/fscp/scripts/runtime/script.py,sha256=tNC83B1vTe71PWvlxiluZYAky-uGtWmpFEq-oTaYTHk,4583
|
|
57
|
+
ferp/fscp/scripts/runtime/state.py,sha256=lbDbxm9Ssiyahx-njCv_z2cv1tfeaf_oSzq0ZFiQRVU,581
|
|
58
|
+
ferp/fscp/scripts/runtime/worker.py,sha256=nsBkOyfAtFrkkpsPmzAXFUmMIiapJJg_u5Ro_pi_yXY,392
|
|
59
|
+
ferp/fscp/transcript/__init__.py,sha256=QOAMyqzwkhwXjmPbM3UzSqxUfoApL9nzLOwKzIXIaRg,67
|
|
60
|
+
ferp/fscp/transcript/events.py,sha256=aaWpUv4-Y5v5TX6TK-qgyxowCUnoi2I8DaVVcGVdJzM,322
|
|
61
|
+
ferp/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
ferp/services/__init__.py,sha256=xJEuxtPi8jqW-rSrKhW4trDmGFW4svSiW0blOpsy0K8,134
|
|
63
|
+
ferp/services/file_listing.py,sha256=Jp__Qou4VSChHId-k6OADGug2Bm_-VIyvOsBrs6fpbM,3371
|
|
64
|
+
ferp/services/monday_sync.py,sha256=e3xjIOXO9DF9nrZibTbaeekYA6-LYnHbd5OE8XDLnMM,4964
|
|
65
|
+
ferp/services/releases.py,sha256=rakn0NvfSmKNswgXF3mZV34hOgPlr0ZRI2fZB0zdaCM,7393
|
|
66
|
+
ferp/services/scripts.py,sha256=SiinZWVpXbNrTf_jVK_oP0oKDwvVMc9YYnXzHmgt78s,2929
|
|
67
|
+
ferp/services/update_check.py,sha256=DRFzpbLtz_y_xwc_2z93LT2ZyfXRCHWcnysd_3kXGX8,3867
|
|
68
|
+
ferp/styles/index.tcss,sha256=QX9MHi_0OGEIg8GhH9DQsCaEIkkHWfYxMYEVkKRoHdA,12865
|
|
69
|
+
ferp/themes/themes.py,sha256=qxSz7NmDKI68IqwUfqrs91YDXulWzMl8dnNlWpjGCNc,5396
|
|
70
|
+
ferp/widgets/__init__.py,sha256=PVqPghIlBgv2LIqGIl5wGpvso8PFJUscEZgO2Yg7hjU,445
|
|
71
|
+
ferp/widgets/dialogs.py,sha256=VjomKWLZvKLEpZ_Nb5Bn6pCSYALacTk9egYZZsDkidM,5440
|
|
72
|
+
ferp/widgets/file_tree.py,sha256=G7_ZENE03tbOJEXakDLcGzEhIn1nv6QhvuHFxfse9JQ,34383
|
|
73
|
+
ferp/widgets/forms.py,sha256=wHIfygonoVt3o-6FT2oiFU4dju6ZAStVDA0KM6sU1xY,5030
|
|
74
|
+
ferp/widgets/output_panel.py,sha256=zddbKg6EST0airyPSmEmMQ14fyPUbs762rIAH6D-DyA,9367
|
|
75
|
+
ferp/widgets/panels.py,sha256=58Oq1_jpeYud4gTRZbae40kEDSd-E53i2FVRMVSqNgA,354
|
|
76
|
+
ferp/widgets/process_list.py,sha256=uyDsEvGQ3v47CAhQ6iuJu3AHAY866MdkA6acL3fXQOo,5240
|
|
77
|
+
ferp/widgets/readme_modal.py,sha256=W91wCUWebx12AgTJqYIvqblTvGrF7KysOR4fp1PU2dw,2199
|
|
78
|
+
ferp/widgets/scripts.py,sha256=cpuN-7yi7bfYNBQWTzxpOUjjs2PArLhKJ4FUhFrUXps,6078
|
|
79
|
+
ferp/widgets/task_capture.py,sha256=j9X-BenKs6NPbrk6lAaKWHD4XhYcuyldw_NNcQEEs-c,2366
|
|
80
|
+
ferp/widgets/task_list.py,sha256=SYU1LVHyjuQQvHtfUjk_p-aoGdjVTBhP4FW75mdng1w,17288
|
|
81
|
+
ferp/widgets/top_bar.py,sha256=sIw7ceCgsq7ChxK37N0QyfwiIk9ftNdcOZNYk3s1vlU,3349
|
|
82
|
+
ferp-0.7.1.dist-info/licenses/LICENSE,sha256=coX1c1i5Os4wRPjOgz91IC9Mmf5sjSeBzd_XYUpRZC8,1071
|
|
83
|
+
ferp-0.7.1.dist-info/METADATA,sha256=M5tM43LR-Z09OyWaT3Xs_e0zTLWhKhktB5VLjIq5OZM,5432
|
|
84
|
+
ferp-0.7.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
85
|
+
ferp-0.7.1.dist-info/entry_points.txt,sha256=IpUreh27vY6rLqp2QA7ljAbt4vJRqOJQxVmvLdNa4_o,39
|
|
86
|
+
ferp-0.7.1.dist-info/top_level.txt,sha256=eIJrCfqCLwNJCS_xJr4xH_X66Vn0gtcJE4yjsc0lJkQ,5
|
|
87
|
+
ferp-0.7.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Brandon Johnson
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ferp
|