zipline-cli 0.2.0__tar.gz → 0.2.2__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.
- {zipline_cli-0.2.0/src/zipline_cli.egg-info → zipline_cli-0.2.2}/PKG-INFO +47 -39
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/README.md +35 -30
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/pyproject.toml +13 -10
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline/__init__.py +1 -1
- zipline_cli-0.2.2/src/zipline/py.typed +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline/zipline.py +97 -39
- {zipline_cli-0.2.0 → zipline_cli-0.2.2/src/zipline_cli.egg-info}/PKG-INFO +47 -39
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline_cli.egg-info/SOURCES.txt +1 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/LICENSE +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/MANIFEST.in +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/setup.cfg +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline_cli.egg-info/dependency_links.txt +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline_cli.egg-info/entry_points.txt +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline_cli.egg-info/requires.txt +0 -0
- {zipline_cli-0.2.0 → zipline_cli-0.2.2}/src/zipline_cli.egg-info/top_level.txt +0 -0
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: zipline-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python 3 CLI File Uploader for Diced/Zipline v3/v4 Upload Server and Django Files.
|
|
5
5
|
Author: Shane
|
|
6
6
|
License: MIT License
|
|
7
|
-
Project-URL:
|
|
8
|
-
Project-URL: Documentation, https://zipline-cli.cssnr.com/
|
|
9
|
-
Project-URL: Source, https://github.com/cssnr/zipline-cli
|
|
7
|
+
Project-URL: GitHub, https://github.com/cssnr/zipline-cli
|
|
10
8
|
Project-URL: Issues, https://github.com/cssnr/zipline-cli/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/cssnr/zipline-cli/releases
|
|
10
|
+
Project-URL: Documentation, https://zipline-cli.cssnr.com/
|
|
11
|
+
Project-URL: Homepage, https://cssnr.com/
|
|
11
12
|
Project-URL: Funding, https://ko-fi.com/cssnr
|
|
12
|
-
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Natural Language :: English
|
|
13
|
+
Project-URL: Discord, https://discord.gg/wXy6m2X8wY
|
|
15
14
|
Classifier: Programming Language :: Python
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
-
Classifier:
|
|
19
|
-
Classifier:
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Natural Language :: English
|
|
20
|
+
Classifier: Typing :: Typed
|
|
21
|
+
Classifier: Topic :: Communications :: File Sharing
|
|
22
|
+
Classifier: Topic :: Terminals
|
|
20
23
|
Requires-Python: >=3.9
|
|
21
24
|
Description-Content-Type: text/markdown
|
|
22
25
|
License-File: LICENSE
|
|
@@ -29,12 +32,14 @@ Dynamic: license-file
|
|
|
29
32
|
[](https://github.com/cssnr/zipline-cli/releases)
|
|
30
33
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
31
34
|
[](https://pypistats.org/packages/zipline-cli)
|
|
35
|
+
[](https://clickpy.clickhouse.com/dashboard/zipline-cli)
|
|
36
|
+
[](https://app.codacy.com/gh/cssnr/zipline-cli/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
|
32
37
|
[](https://sonarcloud.io/summary/new_code?id=cssnr_zipline-cli)
|
|
33
38
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/test.yaml)
|
|
34
39
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/lint.yaml)
|
|
35
40
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/release.yaml)
|
|
36
|
-
[](https://pypi.org/project/zipline-cli/)
|
|
42
|
+
[](https://zipline-cli.cssnr.com/)
|
|
38
43
|
[](https://github.com/cssnr/zipline-cli/graphs/commit-activity)
|
|
39
44
|
[](https://github.com/cssnr/zipline-cli)
|
|
40
45
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
@@ -49,17 +54,20 @@ Dynamic: license-file
|
|
|
49
54
|
|
|
50
55
|
# Zipline CLI
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
- [
|
|
56
|
-
- [
|
|
57
|
-
- [
|
|
58
|
-
- [
|
|
57
|
+
<a title="Zipline CLI" href="https://zipline-cli.cssnr.com/" target="_blank">
|
|
58
|
+
<img alt="Zipline CLI" align="right" width="128" height="auto" src="https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/zipline/cli/logo128.png"></a>
|
|
59
|
+
|
|
60
|
+
- [Quick Start](#quick-start)
|
|
61
|
+
- [Install](#install)
|
|
62
|
+
- [Usage](#usage)
|
|
63
|
+
- [Environment Variables](#environment-variables)
|
|
64
|
+
- [API Reference](#api-reference)
|
|
65
|
+
- [Support](#support)
|
|
66
|
+
- [Contributing](#contributing)
|
|
59
67
|
|
|
60
68
|
Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline) v3/v4 Upload Server and [Django Files](https://github.com/django-files/django-files).
|
|
61
69
|
|
|
62
|
-
- Zipline: [https://zipline.diced.
|
|
70
|
+
- Zipline: [https://zipline.diced.sh/](https://zipline.diced.sh/)
|
|
63
71
|
- Django Files: [https://django-files.github.io/](https://django-files.github.io/)
|
|
64
72
|
|
|
65
73
|
> [!TIP]
|
|
@@ -67,43 +75,43 @@ Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline)
|
|
|
67
75
|
> You can also [request new features](https://github.com/cssnr/zipline-cli/discussions/new?category=feature-requests)
|
|
68
76
|
> or report any [issues](https://github.com/cssnr/zipline-cli/issues/new).
|
|
69
77
|
|
|
70
|
-
## Quick Start
|
|
78
|
+
## Quick Start<a id="quick-start"></a>
|
|
71
79
|
|
|
72
80
|
```shell
|
|
73
|
-
|
|
81
|
+
python -m pip install zipline-cli
|
|
74
82
|
zipline --setup
|
|
75
83
|
```
|
|
76
84
|
|
|
77
|
-
Documentation
|
|
85
|
+
[](https://zipline-cli.cssnr.com/)
|
|
78
86
|
|
|
79
|
-
## Install
|
|
87
|
+
## Install<a id="install"></a>
|
|
80
88
|
|
|
81
89
|
From PyPI: https://pypi.org/p/zipline-cli
|
|
82
90
|
|
|
83
91
|
```shell
|
|
84
|
-
|
|
92
|
+
python -m pip install zipline-cli
|
|
85
93
|
```
|
|
86
94
|
|
|
87
95
|
From GitHub using pip.
|
|
88
96
|
|
|
89
97
|
```shell
|
|
90
|
-
|
|
98
|
+
python -m pip install git+https://github.com/cssnr/zipline-cli.git
|
|
91
99
|
```
|
|
92
100
|
|
|
93
101
|
From Source using pip.
|
|
94
102
|
|
|
95
103
|
```shell
|
|
96
104
|
git clone https://github.com/cssnr/zipline-cli.git
|
|
97
|
-
|
|
105
|
+
python -m pip install zipline-cli
|
|
98
106
|
```
|
|
99
107
|
|
|
100
108
|
Uninstall.
|
|
101
109
|
|
|
102
110
|
```shell
|
|
103
|
-
|
|
111
|
+
python -m pip uninstall zipline-cli
|
|
104
112
|
```
|
|
105
113
|
|
|
106
|
-
## Usage
|
|
114
|
+
## Usage<a id="usage"></a>
|
|
107
115
|
|
|
108
116
|
> [!TIP]
|
|
109
117
|
> View the [Getting Started](https://zipline-cli.cssnr.com/) guide online.
|
|
@@ -139,19 +147,19 @@ zipline
|
|
|
139
147
|
# Paste or Type contents, followed by a newline, then Ctrl+D (Ctrl+Z on Windows)
|
|
140
148
|
```
|
|
141
149
|
|
|
142
|
-
## Environment Variables
|
|
150
|
+
## Environment Variables<a id="environment-variables"></a>
|
|
143
151
|
|
|
144
152
|
Environment Variables are stored in the `.zipline` file in your home directory.
|
|
145
153
|
|
|
146
154
|
- Location: `~/.zipline` or `$HOME/.zipline`
|
|
147
155
|
|
|
148
|
-
| Variable | Description
|
|
149
|
-
| ---------------- |
|
|
150
|
-
| `ZIPLINE_URL` | URL to your Zipline Instance
|
|
151
|
-
| `ZIPLINE_TOKEN` | Authorization Token from Zipline
|
|
152
|
-
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads
|
|
153
|
-
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}`
|
|
154
|
-
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.
|
|
156
|
+
| Variable | Description |
|
|
157
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
158
|
+
| `ZIPLINE_URL` | URL to your Zipline Instance |
|
|
159
|
+
| `ZIPLINE_TOKEN` | Authorization Token from Zipline |
|
|
160
|
+
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads |
|
|
161
|
+
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}` |
|
|
162
|
+
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.sh/docs/guides/upload-options#image-expiration) / [Django Files](https://github.com/onegreyonewhite/pytimeparse2#pytimeparse2-time-expression-parser) |
|
|
155
163
|
|
|
156
164
|
See [.zipline.example](.zipline.example) for an example `.zipline` file.
|
|
157
165
|
|
|
@@ -162,7 +170,7 @@ or using the corresponding command line arguments.
|
|
|
162
170
|
zipline -h
|
|
163
171
|
```
|
|
164
172
|
|
|
165
|
-
## API Reference
|
|
173
|
+
## API Reference<a id="api-reference"></a>
|
|
166
174
|
|
|
167
175
|
Initialize the class with your Zipline URL.
|
|
168
176
|
Everything else is a header passed as a kwarg.
|
|
@@ -185,7 +193,7 @@ with open('text.txt') as f:
|
|
|
185
193
|
print(url)
|
|
186
194
|
```
|
|
187
195
|
|
|
188
|
-
# Support
|
|
196
|
+
# Support<a id="support"></a>
|
|
189
197
|
|
|
190
198
|
For general help or to request a feature, see:
|
|
191
199
|
|
|
@@ -199,7 +207,7 @@ If you are experiencing an issue/bug or getting unexpected results, you can:
|
|
|
199
207
|
- Provide General Feedback: [https://cssnr.github.io/feedback/](https://cssnr.github.io/feedback/?app=zipline-cli)
|
|
200
208
|
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
|
|
201
209
|
|
|
202
|
-
# Contributing
|
|
210
|
+
# Contributing<a id="contributing"></a>
|
|
203
211
|
|
|
204
212
|
All contributions are welcome including [bug reports](https://github.com/cssnr/zipline-cli/issues),
|
|
205
213
|
[feature requests](https://github.com/cssnr/zipline-cli/discussions/categories/feature-requests),
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
[](https://github.com/cssnr/zipline-cli/releases)
|
|
3
3
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
4
4
|
[](https://pypistats.org/packages/zipline-cli)
|
|
5
|
+
[](https://clickpy.clickhouse.com/dashboard/zipline-cli)
|
|
6
|
+
[](https://app.codacy.com/gh/cssnr/zipline-cli/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
|
5
7
|
[](https://sonarcloud.io/summary/new_code?id=cssnr_zipline-cli)
|
|
6
8
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/test.yaml)
|
|
7
9
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/lint.yaml)
|
|
8
10
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/release.yaml)
|
|
9
|
-
[](https://pypi.org/project/zipline-cli/)
|
|
12
|
+
[](https://zipline-cli.cssnr.com/)
|
|
11
13
|
[](https://github.com/cssnr/zipline-cli/graphs/commit-activity)
|
|
12
14
|
[](https://github.com/cssnr/zipline-cli)
|
|
13
15
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
@@ -22,17 +24,20 @@
|
|
|
22
24
|
|
|
23
25
|
# Zipline CLI
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
- [
|
|
29
|
-
- [
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
27
|
+
<a title="Zipline CLI" href="https://zipline-cli.cssnr.com/" target="_blank">
|
|
28
|
+
<img alt="Zipline CLI" align="right" width="128" height="auto" src="https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/zipline/cli/logo128.png"></a>
|
|
29
|
+
|
|
30
|
+
- [Quick Start](#quick-start)
|
|
31
|
+
- [Install](#install)
|
|
32
|
+
- [Usage](#usage)
|
|
33
|
+
- [Environment Variables](#environment-variables)
|
|
34
|
+
- [API Reference](#api-reference)
|
|
35
|
+
- [Support](#support)
|
|
36
|
+
- [Contributing](#contributing)
|
|
32
37
|
|
|
33
38
|
Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline) v3/v4 Upload Server and [Django Files](https://github.com/django-files/django-files).
|
|
34
39
|
|
|
35
|
-
- Zipline: [https://zipline.diced.
|
|
40
|
+
- Zipline: [https://zipline.diced.sh/](https://zipline.diced.sh/)
|
|
36
41
|
- Django Files: [https://django-files.github.io/](https://django-files.github.io/)
|
|
37
42
|
|
|
38
43
|
> [!TIP]
|
|
@@ -40,43 +45,43 @@ Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline)
|
|
|
40
45
|
> You can also [request new features](https://github.com/cssnr/zipline-cli/discussions/new?category=feature-requests)
|
|
41
46
|
> or report any [issues](https://github.com/cssnr/zipline-cli/issues/new).
|
|
42
47
|
|
|
43
|
-
## Quick Start
|
|
48
|
+
## Quick Start<a id="quick-start"></a>
|
|
44
49
|
|
|
45
50
|
```shell
|
|
46
|
-
|
|
51
|
+
python -m pip install zipline-cli
|
|
47
52
|
zipline --setup
|
|
48
53
|
```
|
|
49
54
|
|
|
50
|
-
Documentation
|
|
55
|
+
[](https://zipline-cli.cssnr.com/)
|
|
51
56
|
|
|
52
|
-
## Install
|
|
57
|
+
## Install<a id="install"></a>
|
|
53
58
|
|
|
54
59
|
From PyPI: https://pypi.org/p/zipline-cli
|
|
55
60
|
|
|
56
61
|
```shell
|
|
57
|
-
|
|
62
|
+
python -m pip install zipline-cli
|
|
58
63
|
```
|
|
59
64
|
|
|
60
65
|
From GitHub using pip.
|
|
61
66
|
|
|
62
67
|
```shell
|
|
63
|
-
|
|
68
|
+
python -m pip install git+https://github.com/cssnr/zipline-cli.git
|
|
64
69
|
```
|
|
65
70
|
|
|
66
71
|
From Source using pip.
|
|
67
72
|
|
|
68
73
|
```shell
|
|
69
74
|
git clone https://github.com/cssnr/zipline-cli.git
|
|
70
|
-
|
|
75
|
+
python -m pip install zipline-cli
|
|
71
76
|
```
|
|
72
77
|
|
|
73
78
|
Uninstall.
|
|
74
79
|
|
|
75
80
|
```shell
|
|
76
|
-
|
|
81
|
+
python -m pip uninstall zipline-cli
|
|
77
82
|
```
|
|
78
83
|
|
|
79
|
-
## Usage
|
|
84
|
+
## Usage<a id="usage"></a>
|
|
80
85
|
|
|
81
86
|
> [!TIP]
|
|
82
87
|
> View the [Getting Started](https://zipline-cli.cssnr.com/) guide online.
|
|
@@ -112,19 +117,19 @@ zipline
|
|
|
112
117
|
# Paste or Type contents, followed by a newline, then Ctrl+D (Ctrl+Z on Windows)
|
|
113
118
|
```
|
|
114
119
|
|
|
115
|
-
## Environment Variables
|
|
120
|
+
## Environment Variables<a id="environment-variables"></a>
|
|
116
121
|
|
|
117
122
|
Environment Variables are stored in the `.zipline` file in your home directory.
|
|
118
123
|
|
|
119
124
|
- Location: `~/.zipline` or `$HOME/.zipline`
|
|
120
125
|
|
|
121
|
-
| Variable | Description
|
|
122
|
-
| ---------------- |
|
|
123
|
-
| `ZIPLINE_URL` | URL to your Zipline Instance
|
|
124
|
-
| `ZIPLINE_TOKEN` | Authorization Token from Zipline
|
|
125
|
-
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads
|
|
126
|
-
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}`
|
|
127
|
-
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.
|
|
126
|
+
| Variable | Description |
|
|
127
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
128
|
+
| `ZIPLINE_URL` | URL to your Zipline Instance |
|
|
129
|
+
| `ZIPLINE_TOKEN` | Authorization Token from Zipline |
|
|
130
|
+
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads |
|
|
131
|
+
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}` |
|
|
132
|
+
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.sh/docs/guides/upload-options#image-expiration) / [Django Files](https://github.com/onegreyonewhite/pytimeparse2#pytimeparse2-time-expression-parser) |
|
|
128
133
|
|
|
129
134
|
See [.zipline.example](.zipline.example) for an example `.zipline` file.
|
|
130
135
|
|
|
@@ -135,7 +140,7 @@ or using the corresponding command line arguments.
|
|
|
135
140
|
zipline -h
|
|
136
141
|
```
|
|
137
142
|
|
|
138
|
-
## API Reference
|
|
143
|
+
## API Reference<a id="api-reference"></a>
|
|
139
144
|
|
|
140
145
|
Initialize the class with your Zipline URL.
|
|
141
146
|
Everything else is a header passed as a kwarg.
|
|
@@ -158,7 +163,7 @@ with open('text.txt') as f:
|
|
|
158
163
|
print(url)
|
|
159
164
|
```
|
|
160
165
|
|
|
161
|
-
# Support
|
|
166
|
+
# Support<a id="support"></a>
|
|
162
167
|
|
|
163
168
|
For general help or to request a feature, see:
|
|
164
169
|
|
|
@@ -172,7 +177,7 @@ If you are experiencing an issue/bug or getting unexpected results, you can:
|
|
|
172
177
|
- Provide General Feedback: [https://cssnr.github.io/feedback/](https://cssnr.github.io/feedback/?app=zipline-cli)
|
|
173
178
|
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
|
|
174
179
|
|
|
175
|
-
# Contributing
|
|
180
|
+
# Contributing<a id="contributing"></a>
|
|
176
181
|
|
|
177
182
|
All contributions are welcome including [bug reports](https://github.com/cssnr/zipline-cli/issues),
|
|
178
183
|
[feature requests](https://github.com/cssnr/zipline-cli/discussions/categories/feature-requests),
|
|
@@ -8,14 +8,15 @@ readme = "README.md"
|
|
|
8
8
|
dynamic = ["version"]
|
|
9
9
|
requires-python = ">=3.9"
|
|
10
10
|
classifiers = [
|
|
11
|
-
"License :: OSI Approved :: MIT License",
|
|
12
|
-
"Operating System :: OS Independent",
|
|
13
|
-
"Natural Language :: English",
|
|
14
11
|
"Programming Language :: Python",
|
|
15
12
|
"Programming Language :: Python :: 3",
|
|
16
13
|
"Programming Language :: Python :: 3 :: Only",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
14
|
+
"Operating System :: OS Independent",
|
|
15
|
+
"License :: OSI Approved :: MIT License",
|
|
16
|
+
"Natural Language :: English",
|
|
17
|
+
"Typing :: Typed",
|
|
18
|
+
"Topic :: Communications :: File Sharing",
|
|
19
|
+
"Topic :: Terminals",
|
|
19
20
|
]
|
|
20
21
|
license = { text = "MIT License" }
|
|
21
22
|
#license = { file = "LICENSE" }
|
|
@@ -33,15 +34,14 @@ dev = [
|
|
|
33
34
|
"build",
|
|
34
35
|
"isort",
|
|
35
36
|
"mypy",
|
|
36
|
-
"python-dotenv",
|
|
37
37
|
"python-decouple-typed",
|
|
38
38
|
"psycopg2",
|
|
39
39
|
"ruff",
|
|
40
40
|
"setuptools",
|
|
41
|
-
"twine",
|
|
42
41
|
"ty",
|
|
43
42
|
"types-psycopg2",
|
|
44
43
|
"types-requests",
|
|
44
|
+
"validate-pyproject[all]",
|
|
45
45
|
"wheel",
|
|
46
46
|
]
|
|
47
47
|
|
|
@@ -49,11 +49,14 @@ dev = [
|
|
|
49
49
|
zipline = "zipline.zipline:main"
|
|
50
50
|
|
|
51
51
|
[project.urls]
|
|
52
|
-
|
|
53
|
-
Documentation = "https://zipline-cli.cssnr.com/"
|
|
54
|
-
Source = "https://github.com/cssnr/zipline-cli"
|
|
52
|
+
GitHub = "https://github.com/cssnr/zipline-cli"
|
|
55
53
|
Issues = "https://github.com/cssnr/zipline-cli/issues"
|
|
54
|
+
Changelog = "https://github.com/cssnr/zipline-cli/releases"
|
|
55
|
+
Documentation = "https://zipline-cli.cssnr.com/"
|
|
56
|
+
|
|
57
|
+
Homepage = "https://cssnr.com/"
|
|
56
58
|
Funding = "https://ko-fi.com/cssnr"
|
|
59
|
+
Discord = "https://discord.gg/wXy6m2X8wY"
|
|
57
60
|
|
|
58
61
|
# Setup Tools
|
|
59
62
|
# https://setuptools.pypa.io/en/latest/
|
|
File without changes
|
|
@@ -6,8 +6,9 @@ import re
|
|
|
6
6
|
import secrets
|
|
7
7
|
import string
|
|
8
8
|
import sys
|
|
9
|
+
from importlib.metadata import version
|
|
9
10
|
from pathlib import Path
|
|
10
|
-
from typing import IO, Any, Dict, List,
|
|
11
|
+
from typing import IO, Any, Dict, List, Optional, TextIO
|
|
11
12
|
|
|
12
13
|
import requests
|
|
13
14
|
from decouple import config
|
|
@@ -16,9 +17,8 @@ from dotenv import find_dotenv, load_dotenv
|
|
|
16
17
|
|
|
17
18
|
class ZipURL(object):
|
|
18
19
|
"""
|
|
19
|
-
TODO: Need to use a variable route
|
|
20
20
|
Zipline URL Object
|
|
21
|
-
:param file_url:
|
|
21
|
+
:param file_url: Zipline File Display URL
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
24
|
__slots__ = ["url", "raw"]
|
|
@@ -38,17 +38,18 @@ class ZipURL(object):
|
|
|
38
38
|
try:
|
|
39
39
|
s = url.split("/", 4)
|
|
40
40
|
return f"{s[0]}//{s[2]}/r/{s[4]}"
|
|
41
|
-
except Exception:
|
|
41
|
+
except Exception: # noqa
|
|
42
42
|
return ""
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class Zipline(object):
|
|
46
46
|
"""
|
|
47
47
|
Zipline Python API
|
|
48
|
-
:param base_url:
|
|
48
|
+
:param base_url: Zipline URL
|
|
49
49
|
:param kwargs: Zipline Headers
|
|
50
50
|
"""
|
|
51
51
|
|
|
52
|
+
# noinspection SpellCheckingInspection
|
|
52
53
|
allowed_headers = [
|
|
53
54
|
# zipline v3
|
|
54
55
|
"format",
|
|
@@ -91,18 +92,21 @@ class Zipline(object):
|
|
|
91
92
|
|
|
92
93
|
def send_file(self, file_name: str, file_object: IO, overrides: Optional[dict] = None) -> ZipURL:
|
|
93
94
|
"""
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
:param
|
|
97
|
-
:param
|
|
98
|
-
:
|
|
99
|
-
:return: str: File URL
|
|
95
|
+
Upload File to Zipline
|
|
96
|
+
:param file_name: Name of File for files tuple
|
|
97
|
+
:param file_object: File to Upload
|
|
98
|
+
:param overrides: Header Overrides
|
|
99
|
+
:return: File URL
|
|
100
100
|
"""
|
|
101
101
|
url = self.base_url + "/api/upload"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
|
|
103
|
+
path = Path(file_name)
|
|
104
|
+
if not path.is_file():
|
|
105
|
+
raise ValueError(f"Not a File: {path.resolve()}")
|
|
106
|
+
|
|
107
|
+
mime_type = get_type(path)
|
|
108
|
+
# print(f"mime_type: {mime_type}")
|
|
109
|
+
files = {"file": (file_name, file_object, mime_type)}
|
|
106
110
|
headers = self._headers | overrides if overrides else self._headers
|
|
107
111
|
r = requests.post(url, headers=headers, files=files) # nosec
|
|
108
112
|
r.raise_for_status()
|
|
@@ -115,22 +119,61 @@ class Zipline(object):
|
|
|
115
119
|
return ZipURL(data)
|
|
116
120
|
|
|
117
121
|
|
|
118
|
-
def
|
|
122
|
+
def get_type(file_path: Path) -> str:
|
|
123
|
+
# Deprecated since version 3.13: Passing a file path instead of URL is soft deprecated. Use guess_file_type() for this.
|
|
124
|
+
# https://docs.python.org/3/library/mimetypes.html#mimetypes.guess_type
|
|
125
|
+
mime_type, _ = mimetypes.guess_type(file_path, strict=False)
|
|
126
|
+
if mime_type:
|
|
127
|
+
return mime_type
|
|
128
|
+
return magic_type(file_path)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def magic_type(file_path: Path) -> str: # NOSONAR
|
|
119
132
|
try:
|
|
120
133
|
with open(file_path, "rb") as file:
|
|
121
|
-
chunk = file.read(
|
|
134
|
+
chunk = file.read(512)
|
|
135
|
+
# print(chunk)
|
|
136
|
+
if chunk[0:3] == b"\xff\xd8\xff" or chunk[6:10] in (b"JFIF", b"Exif"):
|
|
137
|
+
return "image/jpeg"
|
|
138
|
+
elif chunk.startswith(b"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a"):
|
|
139
|
+
return "image/png"
|
|
140
|
+
elif chunk.startswith(b"RIFF") and chunk[8:12] == b"WEBP":
|
|
141
|
+
return "image/webp"
|
|
142
|
+
elif chunk.startswith((b"\x47\x49\x46\x38\x37\x61", b"\x47\x49\x46\x38\x39\x61")):
|
|
143
|
+
return "image/gif"
|
|
144
|
+
elif chunk.startswith(b"\x66\x74\x79\x70\x68\x65\x69\x63\x66\x74\79\70\6d"):
|
|
145
|
+
return "image/heic"
|
|
146
|
+
elif chunk.startswith(b"\x00\x00\x01\x00"):
|
|
147
|
+
return "image/ico"
|
|
148
|
+
|
|
149
|
+
elif chunk[3:11] in (b"\x66\x74\x79\x70\x4d\x53\x4e\x56", b"\x66\x74\x79\x70\x69\x73\x6f\x6d"):
|
|
150
|
+
return "video/mp4"
|
|
151
|
+
elif chunk[4:12] == b"ftypisom" or chunk[4:12] == b"ftypMSNV" or chunk[4:12] == b"ftypmp42":
|
|
152
|
+
return "video/mp4"
|
|
153
|
+
elif chunk.startswith(b"\x1a\x45\xdf\xa3"):
|
|
154
|
+
return "video/x-matroska"
|
|
155
|
+
elif chunk.startswith(b"\x6d\x6f\x6f\x76"):
|
|
156
|
+
return "video/quicktime"
|
|
157
|
+
|
|
158
|
+
elif chunk.startswith((b"\xff\xfb", b"\xff\xfb", b"\xff\xfb", b"\x49\x44\x33")):
|
|
159
|
+
return "audio/mp3"
|
|
160
|
+
elif chunk.startswith(b"RIFF") and chunk[8:12] == b"WAVE":
|
|
161
|
+
return "audio/wav"
|
|
162
|
+
elif chunk.startswith(b"OggS"):
|
|
163
|
+
return "application/ogg"
|
|
164
|
+
|
|
122
165
|
chunk.decode("utf-8")
|
|
166
|
+
return "text/plain"
|
|
123
167
|
except UnicodeDecodeError:
|
|
124
|
-
return "
|
|
125
|
-
return "r"
|
|
168
|
+
return "application/octet-stream"
|
|
126
169
|
|
|
127
170
|
|
|
128
171
|
def format_output(filename: str, url: ZipURL) -> str:
|
|
129
172
|
"""
|
|
130
173
|
Format URL Output
|
|
131
|
-
:param filename:
|
|
132
|
-
:param url: ZipURL
|
|
133
|
-
:return:
|
|
174
|
+
:param filename: Original or File Name
|
|
175
|
+
:param url: ZipURL to Format
|
|
176
|
+
:return: Formatted Output
|
|
134
177
|
"""
|
|
135
178
|
zipline_format = config("ZIPLINE_FORMAT", "{filename}\n{url}\n{raw_url}")
|
|
136
179
|
return zipline_format.format(filename=filename, url=url, raw_url=url.raw)
|
|
@@ -138,9 +181,9 @@ def format_output(filename: str, url: ZipURL) -> str:
|
|
|
138
181
|
|
|
139
182
|
def gen_rand(length: int = 4) -> str:
|
|
140
183
|
"""
|
|
141
|
-
Generate Random Streng
|
|
142
|
-
:param length:
|
|
143
|
-
:return:
|
|
184
|
+
Generate Random Streng
|
|
185
|
+
:param length: Length of String
|
|
186
|
+
:return: Random String
|
|
144
187
|
"""
|
|
145
188
|
r = "".join(secrets.choice(string.ascii_letters) for _ in range(length))
|
|
146
189
|
return "".join(r)
|
|
@@ -155,12 +198,12 @@ def get_default(
|
|
|
155
198
|
) -> Optional[str]:
|
|
156
199
|
"""
|
|
157
200
|
Get Default Environment Variable from List of values
|
|
158
|
-
:param values:
|
|
159
|
-
:param default:
|
|
160
|
-
:param cast:
|
|
161
|
-
:param pre:
|
|
162
|
-
:param suf:
|
|
163
|
-
:return:
|
|
201
|
+
:param values: List of Values to Check
|
|
202
|
+
:param default: Default Value if None
|
|
203
|
+
:param cast: Type to Cast Value
|
|
204
|
+
:param pre: Environment Variable Prefix
|
|
205
|
+
:param suf: Environment Variable Suffix
|
|
206
|
+
:return: Environment Variable or None
|
|
164
207
|
"""
|
|
165
208
|
for value in values:
|
|
166
209
|
result = config(f"{pre}{value.upper()}{suf}", "", cast)
|
|
@@ -200,7 +243,10 @@ def run() -> None:
|
|
|
200
243
|
|
|
201
244
|
parser = argparse.ArgumentParser(description="Zipline CLI.")
|
|
202
245
|
parser.add_argument("files", metavar="Files", type=str, nargs="*", help="Files to Upload.")
|
|
203
|
-
parser.add_argument("-
|
|
246
|
+
parser.add_argument("-s", "--setup", action="store_true", default=False, help="run the interactive setup")
|
|
247
|
+
parser.add_argument("-i", "--info", action="store_true", help="show application information")
|
|
248
|
+
parser.add_argument("-V", "--version", action="store_true", help="show the installed version")
|
|
249
|
+
parser.add_argument("-u", "--url", type=str, default=get_default(["url"]), help="Zipline URL")
|
|
204
250
|
parser.add_argument(
|
|
205
251
|
"-a",
|
|
206
252
|
"-t",
|
|
@@ -208,7 +254,7 @@ def run() -> None:
|
|
|
208
254
|
"--token",
|
|
209
255
|
type=str,
|
|
210
256
|
default=get_default(["token", "authorization"]),
|
|
211
|
-
help="Zipline Access Token for Authorization or ZIPLINE_TOKEN
|
|
257
|
+
help="Zipline Access Token for Authorization or ZIPLINE_TOKEN",
|
|
212
258
|
)
|
|
213
259
|
parser.add_argument(
|
|
214
260
|
"-e",
|
|
@@ -217,16 +263,28 @@ def run() -> None:
|
|
|
217
263
|
"--expire",
|
|
218
264
|
type=str,
|
|
219
265
|
default=get_default(["expire", "expire_at"]),
|
|
220
|
-
help="Ex: 1d, 2w. See: https://zipline.diced.
|
|
266
|
+
help="Ex: 1d, 2w. See: https://zipline.diced.sh/docs/guides/upload-options#image-expiration",
|
|
221
267
|
)
|
|
222
268
|
parser.add_argument(
|
|
223
269
|
"--embed", action="store_true", default=get_default(["embed"], False, bool), help="Enable Embeds on Uploads."
|
|
224
270
|
)
|
|
225
|
-
parser.add_argument(
|
|
226
|
-
"-s", "--setup", action="store_true", default=False, help="Automatic Setup of Environment Variables."
|
|
227
|
-
)
|
|
228
271
|
args = parser.parse_args()
|
|
229
272
|
|
|
273
|
+
if args.version:
|
|
274
|
+
print(version("zipline-cli"))
|
|
275
|
+
return
|
|
276
|
+
|
|
277
|
+
if args.info:
|
|
278
|
+
print(f"Zipline Version: {version('zipline-cli')}")
|
|
279
|
+
print(f"Config File: {env_file.absolute()}")
|
|
280
|
+
print(f"Server URL: {config('ZIPLINE_URL', '')}")
|
|
281
|
+
print(f"Token (ends in): {config('ZIPLINE_TOKEN', '')[-10:]}")
|
|
282
|
+
print(f"Expire: {config('ZIPLINE_EXPIRE', '')}")
|
|
283
|
+
print(f"Embed: {config('ZIPLINE_EMBED', '')}")
|
|
284
|
+
zipline_format = config("ZIPLINE_FORMAT", "{url}\n{raw_url}")
|
|
285
|
+
print(f"URL Format::\n{zipline_format}")
|
|
286
|
+
return
|
|
287
|
+
|
|
230
288
|
if args.setup:
|
|
231
289
|
setup(env_file)
|
|
232
290
|
|
|
@@ -265,8 +323,8 @@ def run() -> None:
|
|
|
265
323
|
if not os.path.isfile(name):
|
|
266
324
|
print(f"Warning: File Not Found: {name}")
|
|
267
325
|
continue
|
|
268
|
-
mode: Literal["r", "rb"] = get_mode(name)
|
|
269
|
-
with open(name,
|
|
326
|
+
# mode: Literal["r", "rb"] = get_mode(name)
|
|
327
|
+
with open(name, "rb") as f:
|
|
270
328
|
# name, ext = os.path.splitext(os.path.basename(filename))
|
|
271
329
|
# ext = f'.{ext}' if ext else ''
|
|
272
330
|
# name = f'{name}-{gen_rand(8)}{ext}'
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: zipline-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python 3 CLI File Uploader for Diced/Zipline v3/v4 Upload Server and Django Files.
|
|
5
5
|
Author: Shane
|
|
6
6
|
License: MIT License
|
|
7
|
-
Project-URL:
|
|
8
|
-
Project-URL: Documentation, https://zipline-cli.cssnr.com/
|
|
9
|
-
Project-URL: Source, https://github.com/cssnr/zipline-cli
|
|
7
|
+
Project-URL: GitHub, https://github.com/cssnr/zipline-cli
|
|
10
8
|
Project-URL: Issues, https://github.com/cssnr/zipline-cli/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/cssnr/zipline-cli/releases
|
|
10
|
+
Project-URL: Documentation, https://zipline-cli.cssnr.com/
|
|
11
|
+
Project-URL: Homepage, https://cssnr.com/
|
|
11
12
|
Project-URL: Funding, https://ko-fi.com/cssnr
|
|
12
|
-
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Natural Language :: English
|
|
13
|
+
Project-URL: Discord, https://discord.gg/wXy6m2X8wY
|
|
15
14
|
Classifier: Programming Language :: Python
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
-
Classifier:
|
|
19
|
-
Classifier:
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Natural Language :: English
|
|
20
|
+
Classifier: Typing :: Typed
|
|
21
|
+
Classifier: Topic :: Communications :: File Sharing
|
|
22
|
+
Classifier: Topic :: Terminals
|
|
20
23
|
Requires-Python: >=3.9
|
|
21
24
|
Description-Content-Type: text/markdown
|
|
22
25
|
License-File: LICENSE
|
|
@@ -29,12 +32,14 @@ Dynamic: license-file
|
|
|
29
32
|
[](https://github.com/cssnr/zipline-cli/releases)
|
|
30
33
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
31
34
|
[](https://pypistats.org/packages/zipline-cli)
|
|
35
|
+
[](https://clickpy.clickhouse.com/dashboard/zipline-cli)
|
|
36
|
+
[](https://app.codacy.com/gh/cssnr/zipline-cli/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
|
32
37
|
[](https://sonarcloud.io/summary/new_code?id=cssnr_zipline-cli)
|
|
33
38
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/test.yaml)
|
|
34
39
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/lint.yaml)
|
|
35
40
|
[](https://github.com/cssnr/zipline-cli/actions/workflows/release.yaml)
|
|
36
|
-
[](https://pypi.org/project/zipline-cli/)
|
|
42
|
+
[](https://zipline-cli.cssnr.com/)
|
|
38
43
|
[](https://github.com/cssnr/zipline-cli/graphs/commit-activity)
|
|
39
44
|
[](https://github.com/cssnr/zipline-cli)
|
|
40
45
|
[](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
|
|
@@ -49,17 +54,20 @@ Dynamic: license-file
|
|
|
49
54
|
|
|
50
55
|
# Zipline CLI
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
- [
|
|
56
|
-
- [
|
|
57
|
-
- [
|
|
58
|
-
- [
|
|
57
|
+
<a title="Zipline CLI" href="https://zipline-cli.cssnr.com/" target="_blank">
|
|
58
|
+
<img alt="Zipline CLI" align="right" width="128" height="auto" src="https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/zipline/cli/logo128.png"></a>
|
|
59
|
+
|
|
60
|
+
- [Quick Start](#quick-start)
|
|
61
|
+
- [Install](#install)
|
|
62
|
+
- [Usage](#usage)
|
|
63
|
+
- [Environment Variables](#environment-variables)
|
|
64
|
+
- [API Reference](#api-reference)
|
|
65
|
+
- [Support](#support)
|
|
66
|
+
- [Contributing](#contributing)
|
|
59
67
|
|
|
60
68
|
Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline) v3/v4 Upload Server and [Django Files](https://github.com/django-files/django-files).
|
|
61
69
|
|
|
62
|
-
- Zipline: [https://zipline.diced.
|
|
70
|
+
- Zipline: [https://zipline.diced.sh/](https://zipline.diced.sh/)
|
|
63
71
|
- Django Files: [https://django-files.github.io/](https://django-files.github.io/)
|
|
64
72
|
|
|
65
73
|
> [!TIP]
|
|
@@ -67,43 +75,43 @@ Python 3 CLI File Uploader for [Diced/Zipline](https://github.com/diced/zipline)
|
|
|
67
75
|
> You can also [request new features](https://github.com/cssnr/zipline-cli/discussions/new?category=feature-requests)
|
|
68
76
|
> or report any [issues](https://github.com/cssnr/zipline-cli/issues/new).
|
|
69
77
|
|
|
70
|
-
## Quick Start
|
|
78
|
+
## Quick Start<a id="quick-start"></a>
|
|
71
79
|
|
|
72
80
|
```shell
|
|
73
|
-
|
|
81
|
+
python -m pip install zipline-cli
|
|
74
82
|
zipline --setup
|
|
75
83
|
```
|
|
76
84
|
|
|
77
|
-
Documentation
|
|
85
|
+
[](https://zipline-cli.cssnr.com/)
|
|
78
86
|
|
|
79
|
-
## Install
|
|
87
|
+
## Install<a id="install"></a>
|
|
80
88
|
|
|
81
89
|
From PyPI: https://pypi.org/p/zipline-cli
|
|
82
90
|
|
|
83
91
|
```shell
|
|
84
|
-
|
|
92
|
+
python -m pip install zipline-cli
|
|
85
93
|
```
|
|
86
94
|
|
|
87
95
|
From GitHub using pip.
|
|
88
96
|
|
|
89
97
|
```shell
|
|
90
|
-
|
|
98
|
+
python -m pip install git+https://github.com/cssnr/zipline-cli.git
|
|
91
99
|
```
|
|
92
100
|
|
|
93
101
|
From Source using pip.
|
|
94
102
|
|
|
95
103
|
```shell
|
|
96
104
|
git clone https://github.com/cssnr/zipline-cli.git
|
|
97
|
-
|
|
105
|
+
python -m pip install zipline-cli
|
|
98
106
|
```
|
|
99
107
|
|
|
100
108
|
Uninstall.
|
|
101
109
|
|
|
102
110
|
```shell
|
|
103
|
-
|
|
111
|
+
python -m pip uninstall zipline-cli
|
|
104
112
|
```
|
|
105
113
|
|
|
106
|
-
## Usage
|
|
114
|
+
## Usage<a id="usage"></a>
|
|
107
115
|
|
|
108
116
|
> [!TIP]
|
|
109
117
|
> View the [Getting Started](https://zipline-cli.cssnr.com/) guide online.
|
|
@@ -139,19 +147,19 @@ zipline
|
|
|
139
147
|
# Paste or Type contents, followed by a newline, then Ctrl+D (Ctrl+Z on Windows)
|
|
140
148
|
```
|
|
141
149
|
|
|
142
|
-
## Environment Variables
|
|
150
|
+
## Environment Variables<a id="environment-variables"></a>
|
|
143
151
|
|
|
144
152
|
Environment Variables are stored in the `.zipline` file in your home directory.
|
|
145
153
|
|
|
146
154
|
- Location: `~/.zipline` or `$HOME/.zipline`
|
|
147
155
|
|
|
148
|
-
| Variable | Description
|
|
149
|
-
| ---------------- |
|
|
150
|
-
| `ZIPLINE_URL` | URL to your Zipline Instance
|
|
151
|
-
| `ZIPLINE_TOKEN` | Authorization Token from Zipline
|
|
152
|
-
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads
|
|
153
|
-
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}`
|
|
154
|
-
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.
|
|
156
|
+
| Variable | Description |
|
|
157
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
158
|
+
| `ZIPLINE_URL` | URL to your Zipline Instance |
|
|
159
|
+
| `ZIPLINE_TOKEN` | Authorization Token from Zipline |
|
|
160
|
+
| `ZIPLINE_EMBED` | Set this enable Embed on your uploads |
|
|
161
|
+
| `ZIPLINE_FORMAT` | Output Format. Variables: `{filename}`, `{url}` and `{raw_url}` |
|
|
162
|
+
| `ZIPLINE_EXPIRE` | Reference: [Zipline](https://zipline.diced.sh/docs/guides/upload-options#image-expiration) / [Django Files](https://github.com/onegreyonewhite/pytimeparse2#pytimeparse2-time-expression-parser) |
|
|
155
163
|
|
|
156
164
|
See [.zipline.example](.zipline.example) for an example `.zipline` file.
|
|
157
165
|
|
|
@@ -162,7 +170,7 @@ or using the corresponding command line arguments.
|
|
|
162
170
|
zipline -h
|
|
163
171
|
```
|
|
164
172
|
|
|
165
|
-
## API Reference
|
|
173
|
+
## API Reference<a id="api-reference"></a>
|
|
166
174
|
|
|
167
175
|
Initialize the class with your Zipline URL.
|
|
168
176
|
Everything else is a header passed as a kwarg.
|
|
@@ -185,7 +193,7 @@ with open('text.txt') as f:
|
|
|
185
193
|
print(url)
|
|
186
194
|
```
|
|
187
195
|
|
|
188
|
-
# Support
|
|
196
|
+
# Support<a id="support"></a>
|
|
189
197
|
|
|
190
198
|
For general help or to request a feature, see:
|
|
191
199
|
|
|
@@ -199,7 +207,7 @@ If you are experiencing an issue/bug or getting unexpected results, you can:
|
|
|
199
207
|
- Provide General Feedback: [https://cssnr.github.io/feedback/](https://cssnr.github.io/feedback/?app=zipline-cli)
|
|
200
208
|
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
|
|
201
209
|
|
|
202
|
-
# Contributing
|
|
210
|
+
# Contributing<a id="contributing"></a>
|
|
203
211
|
|
|
204
212
|
All contributions are welcome including [bug reports](https://github.com/cssnr/zipline-cli/issues),
|
|
205
213
|
[feature requests](https://github.com/cssnr/zipline-cli/discussions/categories/feature-requests),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|