scitex 2.14.0__py3-none-any.whl → 2.15.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.
- scitex/__init__.py +47 -0
- scitex/_env_loader.py +156 -0
- scitex/_mcp_resources/__init__.py +37 -0
- scitex/_mcp_resources/_cheatsheet.py +135 -0
- scitex/_mcp_resources/_figrecipe.py +138 -0
- scitex/_mcp_resources/_formats.py +102 -0
- scitex/_mcp_resources/_modules.py +337 -0
- scitex/_mcp_resources/_session.py +149 -0
- scitex/_mcp_tools/__init__.py +4 -0
- scitex/_mcp_tools/audio.py +66 -0
- scitex/_mcp_tools/diagram.py +11 -95
- scitex/_mcp_tools/introspect.py +191 -0
- scitex/_mcp_tools/plt.py +260 -305
- scitex/_mcp_tools/scholar.py +74 -0
- scitex/_mcp_tools/social.py +244 -0
- scitex/_mcp_tools/writer.py +21 -204
- scitex/ai/_gen_ai/_PARAMS.py +10 -7
- scitex/ai/classification/reporters/_SingleClassificationReporter.py +45 -1603
- scitex/ai/classification/reporters/_mixins/__init__.py +36 -0
- scitex/ai/classification/reporters/_mixins/_constants.py +67 -0
- scitex/ai/classification/reporters/_mixins/_cv_summary.py +387 -0
- scitex/ai/classification/reporters/_mixins/_feature_importance.py +119 -0
- scitex/ai/classification/reporters/_mixins/_metrics.py +275 -0
- scitex/ai/classification/reporters/_mixins/_plotting.py +179 -0
- scitex/ai/classification/reporters/_mixins/_reports.py +153 -0
- scitex/ai/classification/reporters/_mixins/_storage.py +160 -0
- scitex/audio/README.md +40 -36
- scitex/audio/__init__.py +127 -59
- scitex/audio/_branding.py +185 -0
- scitex/audio/_mcp/__init__.py +32 -0
- scitex/audio/_mcp/handlers.py +59 -6
- scitex/audio/_mcp/speak_handlers.py +238 -0
- scitex/audio/_relay.py +225 -0
- scitex/audio/engines/elevenlabs_engine.py +6 -1
- scitex/audio/mcp_server.py +228 -75
- scitex/canvas/README.md +1 -1
- scitex/canvas/editor/_dearpygui/__init__.py +25 -0
- scitex/canvas/editor/_dearpygui/_editor.py +147 -0
- scitex/canvas/editor/_dearpygui/_handlers.py +476 -0
- scitex/canvas/editor/_dearpygui/_panels/__init__.py +17 -0
- scitex/canvas/editor/_dearpygui/_panels/_control.py +119 -0
- scitex/canvas/editor/_dearpygui/_panels/_element_controls.py +190 -0
- scitex/canvas/editor/_dearpygui/_panels/_preview.py +43 -0
- scitex/canvas/editor/_dearpygui/_panels/_sections.py +390 -0
- scitex/canvas/editor/_dearpygui/_plotting.py +187 -0
- scitex/canvas/editor/_dearpygui/_rendering.py +504 -0
- scitex/canvas/editor/_dearpygui/_selection.py +295 -0
- scitex/canvas/editor/_dearpygui/_state.py +93 -0
- scitex/canvas/editor/_dearpygui/_utils.py +61 -0
- scitex/canvas/editor/flask_editor/templates/__init__.py +32 -70
- scitex/cli/__init__.py +38 -43
- scitex/cli/audio.py +76 -27
- scitex/cli/capture.py +13 -20
- scitex/cli/introspect.py +443 -0
- scitex/cli/main.py +198 -109
- scitex/cli/mcp.py +60 -34
- scitex/cli/scholar/__init__.py +8 -0
- scitex/cli/scholar/_crossref_scitex.py +296 -0
- scitex/cli/scholar/_fetch.py +25 -3
- scitex/cli/social.py +314 -0
- scitex/cli/writer.py +117 -0
- scitex/config/README.md +1 -1
- scitex/config/__init__.py +16 -2
- scitex/config/_env_registry.py +191 -0
- scitex/diagram/__init__.py +42 -19
- scitex/diagram/mcp_server.py +13 -125
- scitex/introspect/__init__.py +75 -0
- scitex/introspect/_call_graph.py +303 -0
- scitex/introspect/_class_hierarchy.py +163 -0
- scitex/introspect/_core.py +42 -0
- scitex/introspect/_docstring.py +131 -0
- scitex/introspect/_examples.py +113 -0
- scitex/introspect/_imports.py +271 -0
- scitex/introspect/_mcp/__init__.py +37 -0
- scitex/introspect/_mcp/handlers.py +208 -0
- scitex/introspect/_members.py +151 -0
- scitex/introspect/_resolve.py +89 -0
- scitex/introspect/_signature.py +131 -0
- scitex/introspect/_source.py +80 -0
- scitex/introspect/_type_hints.py +172 -0
- scitex/io/bundle/README.md +1 -1
- scitex/mcp_server.py +98 -5
- scitex/plt/__init__.py +248 -550
- scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +5 -10
- scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/plt/gallery/README.md +1 -1
- scitex/plt/utils/_hitmap/__init__.py +82 -0
- scitex/plt/utils/_hitmap/_artist_extraction.py +343 -0
- scitex/plt/utils/_hitmap/_color_application.py +346 -0
- scitex/plt/utils/_hitmap/_color_conversion.py +121 -0
- scitex/plt/utils/_hitmap/_constants.py +40 -0
- scitex/plt/utils/_hitmap/_hitmap_core.py +334 -0
- scitex/plt/utils/_hitmap/_path_extraction.py +357 -0
- scitex/plt/utils/_hitmap/_query.py +113 -0
- scitex/plt/utils/_hitmap.py +46 -1616
- scitex/plt/utils/_metadata/__init__.py +80 -0
- scitex/plt/utils/_metadata/_artists/__init__.py +25 -0
- scitex/plt/utils/_metadata/_artists/_base.py +195 -0
- scitex/plt/utils/_metadata/_artists/_collections.py +356 -0
- scitex/plt/utils/_metadata/_artists/_extract.py +57 -0
- scitex/plt/utils/_metadata/_artists/_images.py +80 -0
- scitex/plt/utils/_metadata/_artists/_lines.py +261 -0
- scitex/plt/utils/_metadata/_artists/_patches.py +247 -0
- scitex/plt/utils/_metadata/_artists/_text.py +106 -0
- scitex/plt/utils/_metadata/_csv.py +416 -0
- scitex/plt/utils/_metadata/_detect.py +225 -0
- scitex/plt/utils/_metadata/_legend.py +127 -0
- scitex/plt/utils/_metadata/_rounding.py +117 -0
- scitex/plt/utils/_metadata/_verification.py +202 -0
- scitex/schema/README.md +1 -1
- scitex/scholar/__init__.py +8 -0
- scitex/scholar/_mcp/crossref_handlers.py +265 -0
- scitex/scholar/core/Scholar.py +63 -1700
- scitex/scholar/core/_mixins/__init__.py +36 -0
- scitex/scholar/core/_mixins/_enrichers.py +270 -0
- scitex/scholar/core/_mixins/_library_handlers.py +100 -0
- scitex/scholar/core/_mixins/_loaders.py +103 -0
- scitex/scholar/core/_mixins/_pdf_download.py +375 -0
- scitex/scholar/core/_mixins/_pipeline.py +312 -0
- scitex/scholar/core/_mixins/_project_handlers.py +125 -0
- scitex/scholar/core/_mixins/_savers.py +69 -0
- scitex/scholar/core/_mixins/_search.py +103 -0
- scitex/scholar/core/_mixins/_services.py +88 -0
- scitex/scholar/core/_mixins/_url_finding.py +105 -0
- scitex/scholar/crossref_scitex.py +367 -0
- scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/scholar/examples/00_run_all.sh +120 -0
- scitex/scholar/jobs/_executors.py +27 -3
- scitex/scholar/pdf_download/ScholarPDFDownloader.py +38 -416
- scitex/scholar/pdf_download/_cli.py +154 -0
- scitex/scholar/pdf_download/strategies/__init__.py +11 -8
- scitex/scholar/pdf_download/strategies/manual_download_fallback.py +80 -3
- scitex/scholar/pipelines/ScholarPipelineBibTeX.py +73 -121
- scitex/scholar/pipelines/ScholarPipelineParallel.py +80 -138
- scitex/scholar/pipelines/ScholarPipelineSingle.py +43 -63
- scitex/scholar/pipelines/_single_steps.py +71 -36
- scitex/scholar/storage/_LibraryManager.py +97 -1695
- scitex/scholar/storage/_mixins/__init__.py +30 -0
- scitex/scholar/storage/_mixins/_bibtex_handlers.py +128 -0
- scitex/scholar/storage/_mixins/_library_operations.py +218 -0
- scitex/scholar/storage/_mixins/_metadata_conversion.py +226 -0
- scitex/scholar/storage/_mixins/_paper_saving.py +456 -0
- scitex/scholar/storage/_mixins/_resolution.py +376 -0
- scitex/scholar/storage/_mixins/_storage_helpers.py +121 -0
- scitex/scholar/storage/_mixins/_symlink_handlers.py +226 -0
- scitex/scholar/url_finder/.tmp/open_url/KNOWN_RESOLVERS.py +462 -0
- scitex/scholar/url_finder/.tmp/open_url/README.md +223 -0
- scitex/scholar/url_finder/.tmp/open_url/_DOIToURLResolver.py +694 -0
- scitex/scholar/url_finder/.tmp/open_url/_OpenURLResolver.py +1160 -0
- scitex/scholar/url_finder/.tmp/open_url/_ResolverLinkFinder.py +344 -0
- scitex/scholar/url_finder/.tmp/open_url/__init__.py +24 -0
- scitex/security/README.md +3 -3
- scitex/session/README.md +1 -1
- scitex/sh/README.md +1 -1
- scitex/social/__init__.py +153 -0
- scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/template/README.md +1 -1
- scitex/template/clone_writer_directory.py +5 -5
- scitex/writer/README.md +1 -1
- scitex/writer/_mcp/handlers.py +11 -744
- scitex/writer/_mcp/tool_schemas.py +5 -335
- scitex-2.15.1.dist-info/METADATA +648 -0
- {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/RECORD +166 -111
- scitex/canvas/editor/flask_editor/templates/_scripts.py +0 -4933
- scitex/canvas/editor/flask_editor/templates/_styles.py +0 -1658
- scitex/dev/plt/data/mpl/PLOTTING_FUNCTIONS.yaml +0 -90
- scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES.yaml +0 -1571
- scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES_DETAILED.yaml +0 -6262
- scitex/dev/plt/data/mpl/SIGNATURES_FLATTENED.yaml +0 -1274
- scitex/dev/plt/data/mpl/dir_ax.txt +0 -459
- scitex/diagram/_compile.py +0 -312
- scitex/diagram/_diagram.py +0 -355
- scitex/diagram/_mcp/__init__.py +0 -4
- scitex/diagram/_mcp/handlers.py +0 -400
- scitex/diagram/_mcp/tool_schemas.py +0 -157
- scitex/diagram/_presets.py +0 -173
- scitex/diagram/_schema.py +0 -182
- scitex/diagram/_split.py +0 -278
- scitex/plt/_mcp/__init__.py +0 -4
- scitex/plt/_mcp/_handlers_annotation.py +0 -102
- scitex/plt/_mcp/_handlers_figure.py +0 -195
- scitex/plt/_mcp/_handlers_plot.py +0 -252
- scitex/plt/_mcp/_handlers_style.py +0 -219
- scitex/plt/_mcp/handlers.py +0 -74
- scitex/plt/_mcp/tool_schemas.py +0 -497
- scitex/plt/mcp_server.py +0 -231
- scitex/scholar/data/.gitkeep +0 -0
- scitex/scholar/data/README.md +0 -44
- scitex/scholar/data/bib_files/bibliography.bib +0 -1952
- scitex/scholar/data/bib_files/neurovista.bib +0 -277
- scitex/scholar/data/bib_files/neurovista_enriched.bib +0 -441
- scitex/scholar/data/bib_files/neurovista_enriched_enriched.bib +0 -441
- scitex/scholar/data/bib_files/neurovista_processed.bib +0 -338
- scitex/scholar/data/bib_files/openaccess.bib +0 -89
- scitex/scholar/data/bib_files/pac-seizure_prediction_enriched.bib +0 -2178
- scitex/scholar/data/bib_files/pac.bib +0 -698
- scitex/scholar/data/bib_files/pac_enriched.bib +0 -1061
- scitex/scholar/data/bib_files/pac_processed.bib +0 -0
- scitex/scholar/data/bib_files/pac_titles.txt +0 -75
- scitex/scholar/data/bib_files/paywalled.bib +0 -98
- scitex/scholar/data/bib_files/related-papers-by-coauthors.bib +0 -58
- scitex/scholar/data/bib_files/related-papers-by-coauthors_enriched.bib +0 -87
- scitex/scholar/data/bib_files/seizure_prediction.bib +0 -694
- scitex/scholar/data/bib_files/seizure_prediction_processed.bib +0 -0
- scitex/scholar/data/bib_files/test_complete_enriched.bib +0 -437
- scitex/scholar/data/bib_files/test_final_enriched.bib +0 -437
- scitex/scholar/data/bib_files/test_seizure.bib +0 -46
- scitex/scholar/data/impact_factor/JCR_IF_2022.xlsx +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024.db +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024.xlsx +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024_v01.db +0 -0
- scitex/scholar/data/impact_factor.db +0 -0
- scitex/scholar/examples/SUGGESTIONS.md +0 -865
- scitex/scholar/examples/dev.py +0 -38
- scitex-2.14.0.dist-info/METADATA +0 -1238
- {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/WHEEL +0 -0
- {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/entry_points.txt +0 -0
- {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# External Package Branding Guide
|
|
2
|
+
|
|
3
|
+
When scitex wraps external packages (like `figrecipe` for `scitex.plt` or `crossref-local` for `scitex.scholar`), those packages should support configurable branding so documentation and error messages show the scitex namespace.
|
|
4
|
+
|
|
5
|
+
## When to Use Branding
|
|
6
|
+
|
|
7
|
+
- **Use branding**: External packages that scitex wraps (figrecipe, crossref-local, etc.)
|
|
8
|
+
- **Don't use branding**: Internal scitex modules (scitex.audio, scitex.stats, etc.) - just hardcode `SCITEX_*` prefix
|
|
9
|
+
|
|
10
|
+
## Pattern Overview
|
|
11
|
+
|
|
12
|
+
The external package provides a `_branding.py` module that:
|
|
13
|
+
1. Reads brand name from environment variable
|
|
14
|
+
2. Derives environment variable prefix from brand name
|
|
15
|
+
3. Provides helper functions for rebranding text/docstrings
|
|
16
|
+
|
|
17
|
+
## Implementation Template
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
# external_package/_branding.py
|
|
21
|
+
|
|
22
|
+
import os
|
|
23
|
+
import re
|
|
24
|
+
from typing import Optional
|
|
25
|
+
|
|
26
|
+
# Environment variables for branding
|
|
27
|
+
# Parent package sets these before importing
|
|
28
|
+
BRAND_NAME = os.environ.get("{PACKAGE}_BRAND", "{package}")
|
|
29
|
+
BRAND_ALIAS = os.environ.get("{PACKAGE}_ALIAS", "{alias}")
|
|
30
|
+
|
|
31
|
+
# Original values for replacement
|
|
32
|
+
_ORIGINAL_NAME = "{package}"
|
|
33
|
+
_ORIGINAL_ALIAS = "{alias}"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _brand_to_env_prefix(brand: str) -> str:
|
|
37
|
+
"""Convert brand name to environment variable prefix.
|
|
38
|
+
|
|
39
|
+
Examples:
|
|
40
|
+
"figrecipe" -> "FIGRECIPE"
|
|
41
|
+
"scitex.plt" -> "SCITEX_PLT"
|
|
42
|
+
"crossref-local" -> "CROSSREF_LOCAL"
|
|
43
|
+
"""
|
|
44
|
+
return brand.upper().replace(".", "_").replace("-", "_")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Environment variable prefix based on brand
|
|
48
|
+
ENV_PREFIX = _brand_to_env_prefix(BRAND_NAME)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def get_env(key: str, default: Optional[str] = None) -> Optional[str]:
|
|
52
|
+
"""Get environment variable with brand-aware prefix.
|
|
53
|
+
|
|
54
|
+
Checks {ENV_PREFIX}_{key} first, then falls back to original prefix.
|
|
55
|
+
"""
|
|
56
|
+
value = os.environ.get(f"{ENV_PREFIX}_{key}")
|
|
57
|
+
if value is not None:
|
|
58
|
+
return value
|
|
59
|
+
|
|
60
|
+
# Fall back to original prefix if different
|
|
61
|
+
original_prefix = _brand_to_env_prefix(_ORIGINAL_NAME)
|
|
62
|
+
if ENV_PREFIX != original_prefix:
|
|
63
|
+
value = os.environ.get(f"{original_prefix}_{key}")
|
|
64
|
+
if value is not None:
|
|
65
|
+
return value
|
|
66
|
+
|
|
67
|
+
return default
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def rebrand_text(text: Optional[str]) -> Optional[str]:
|
|
71
|
+
"""Apply branding to a text string (docstrings, error messages)."""
|
|
72
|
+
if text is None:
|
|
73
|
+
return None
|
|
74
|
+
|
|
75
|
+
if BRAND_NAME == _ORIGINAL_NAME and BRAND_ALIAS == _ORIGINAL_ALIAS:
|
|
76
|
+
return text
|
|
77
|
+
|
|
78
|
+
result = text
|
|
79
|
+
|
|
80
|
+
# Replace import statements
|
|
81
|
+
result = re.sub(
|
|
82
|
+
rf"import\s+{_ORIGINAL_NAME}\s+as\s+{_ORIGINAL_ALIAS}",
|
|
83
|
+
f"import {BRAND_NAME} as {BRAND_ALIAS}",
|
|
84
|
+
result,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
# Replace "from package" statements
|
|
88
|
+
result = re.sub(
|
|
89
|
+
rf"from\s+{_ORIGINAL_NAME}(\s+import|\s*\.)",
|
|
90
|
+
lambda m: f"from {BRAND_NAME}{m.group(1)}",
|
|
91
|
+
result,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
return result
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def get_mcp_server_name() -> str:
|
|
98
|
+
"""Get the MCP server name based on branding."""
|
|
99
|
+
return BRAND_NAME.replace(".", "-")
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Usage in Parent Package (scitex)
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
# scitex/plt/__init__.py
|
|
106
|
+
import os
|
|
107
|
+
|
|
108
|
+
# Set branding BEFORE importing the external package
|
|
109
|
+
os.environ["FIGRECIPE_BRAND"] = "scitex.plt"
|
|
110
|
+
os.environ["FIGRECIPE_ALIAS"] = "plt"
|
|
111
|
+
|
|
112
|
+
# Now import - docstrings will show scitex.plt instead of figrecipe
|
|
113
|
+
from figrecipe import *
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Port Scheme
|
|
117
|
+
|
|
118
|
+
SciTeX uses port scheme 3129X (sa-i-te-ku-su → 3-1-2-9 in Japanese):
|
|
119
|
+
|
|
120
|
+
| Port | Service |
|
|
121
|
+
|-------|------------------|
|
|
122
|
+
| 31290 | scitex-cloud |
|
|
123
|
+
| 31291 | crossref-local |
|
|
124
|
+
| 31292 | openalex |
|
|
125
|
+
| 31293 | scitex-audio |
|
|
126
|
+
|
|
127
|
+
## Environment Variable Pattern
|
|
128
|
+
|
|
129
|
+
External packages should use `{ENV_PREFIX}_{SETTING}`:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
SCITEX_PLT_MODE=local
|
|
133
|
+
CROSSREF_LOCAL_API_URL=http://localhost:31291
|
|
134
|
+
SCITEX_AUDIO_RELAY_URL=http://localhost:31293
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Example: crossref-local
|
|
138
|
+
|
|
139
|
+
See GitHub Issue: https://github.com/ywatanabe1989/crossref-local/issues/11
|
|
140
|
+
|
|
141
|
+
The crossref-local package should implement:
|
|
142
|
+
- `CROSSREF_LOCAL_BRAND` / `CROSSREF_LOCAL_ALIAS` env vars
|
|
143
|
+
- Dynamic `ENV_PREFIX` derived from brand name
|
|
144
|
+
- When used via scitex.scholar, shows `scitex.scholar` in docs
|
|
145
|
+
|
|
146
|
+
## References
|
|
147
|
+
|
|
148
|
+
- figrecipe/_branding.py - Reference implementation
|
|
149
|
+
- scitex/audio/_branding.py - Simple internal module (no rebranding needed)
|
scitex/template/README.md
CHANGED
|
@@ -25,8 +25,8 @@ TEMPLATE_REPO_URL = "https://github.com/ywatanabe1989/scitex-writer.git"
|
|
|
25
25
|
def clone_writer_directory(
|
|
26
26
|
project_dir: str,
|
|
27
27
|
git_strategy: Optional[str] = "child",
|
|
28
|
-
branch: Optional[str] =
|
|
29
|
-
tag: Optional[str] =
|
|
28
|
+
branch: Optional[str] = "main",
|
|
29
|
+
tag: Optional[str] = None,
|
|
30
30
|
) -> bool:
|
|
31
31
|
"""
|
|
32
32
|
Create a new paper directory from the scitex-writer template repository.
|
|
@@ -39,10 +39,10 @@ def clone_writer_directory(
|
|
|
39
39
|
git_strategy : str, optional
|
|
40
40
|
Git initialization strategy ('child', 'parent', None). Default is 'child'.
|
|
41
41
|
branch : str, optional
|
|
42
|
-
Specific branch of the template repository to clone.
|
|
42
|
+
Specific branch of the template repository to clone. Default is 'main'.
|
|
43
43
|
Mutually exclusive with tag parameter.
|
|
44
44
|
tag : str, optional
|
|
45
|
-
Specific tag/release of the template repository to clone.
|
|
45
|
+
Specific tag/release of the template repository to clone. If None, uses the branch.
|
|
46
46
|
Mutually exclusive with branch parameter.
|
|
47
47
|
|
|
48
48
|
Returns
|
|
@@ -53,7 +53,7 @@ def clone_writer_directory(
|
|
|
53
53
|
Example
|
|
54
54
|
-------
|
|
55
55
|
>>> from scitex.template import clone_writer_directory
|
|
56
|
-
>>> clone_writer_directory("my_paper") # Uses
|
|
56
|
+
>>> clone_writer_directory("my_paper") # Uses main branch
|
|
57
57
|
>>> clone_writer_directory("./papers/my_paper")
|
|
58
58
|
>>> clone_writer_directory("my_paper", branch="develop")
|
|
59
59
|
>>> clone_writer_directory("my_paper", tag="v2.0.0")
|
scitex/writer/README.md
CHANGED