pybiolib 1.2.1007__py3-none-any.whl → 1.2.1018__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.
Files changed (27) hide show
  1. biolib/_internal/add_copilot_prompts.py +3 -5
  2. biolib/_internal/add_gui_files.py +59 -0
  3. biolib/_internal/{llm_instructions → templates/copilot_template}/.github/instructions/style-react-ts.instructions.md +2 -0
  4. biolib/_internal/templates/gui_template/.yarnrc.yml +1 -0
  5. biolib/_internal/templates/gui_template/App.tsx +17 -0
  6. biolib/_internal/templates/gui_template/Dockerfile +26 -0
  7. biolib/_internal/templates/gui_template/index.css +5 -0
  8. biolib/_internal/templates/gui_template/index.html +13 -0
  9. biolib/_internal/templates/gui_template/index.tsx +10 -0
  10. biolib/_internal/templates/gui_template/package.json +26 -0
  11. biolib/_internal/templates/gui_template/tsconfig.json +24 -0
  12. biolib/_internal/templates/gui_template/vite.config.mts +8 -0
  13. biolib/_internal/templates/init_template/run.sh +0 -0
  14. biolib/_internal/templates/templates.py +9 -1
  15. biolib/cli/init.py +27 -15
  16. {pybiolib-1.2.1007.dist-info → pybiolib-1.2.1018.dist-info}/METADATA +1 -1
  17. {pybiolib-1.2.1007.dist-info → pybiolib-1.2.1018.dist-info}/RECORD +25 -16
  18. biolib/_internal/llm_instructions/__init__.py +0 -0
  19. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/instructions/general-app-knowledge.instructions.md +0 -0
  20. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/instructions/style-general.instructions.md +0 -0
  21. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/instructions/style-python.instructions.md +0 -0
  22. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/prompts/biolib_app_inputs.prompt.md +0 -0
  23. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/prompts/biolib_onboard_repo.prompt.md +0 -0
  24. /biolib/_internal/{llm_instructions → templates/copilot_template}/.github/prompts/biolib_run_apps.prompt.md +0 -0
  25. {pybiolib-1.2.1007.dist-info → pybiolib-1.2.1018.dist-info}/LICENSE +0 -0
  26. {pybiolib-1.2.1007.dist-info → pybiolib-1.2.1018.dist-info}/WHEEL +0 -0
  27. {pybiolib-1.2.1007.dist-info → pybiolib-1.2.1018.dist-info}/entry_points.txt +0 -0
@@ -2,10 +2,10 @@ import os
2
2
  import shutil
3
3
  import sys
4
4
 
5
- from biolib._internal import llm_instructions
5
+ from biolib._internal.templates import templates
6
6
 
7
7
 
8
- def add_copilot_prompts(force: bool, style: bool = True, silent: bool = False) -> None:
8
+ def add_copilot_prompts(force: bool, silent: bool = False) -> None:
9
9
  current_working_directory = os.getcwd()
10
10
  config_file_path = f'{current_working_directory}/.biolib/config.yml'
11
11
  if not os.path.exists(config_file_path):
@@ -14,7 +14,7 @@ Error: Current directory has not been initialized as a BioLib application.
14
14
  Please run the \"biolib init\" command first"""
15
15
  print(err_string, file=sys.stderr)
16
16
  exit(1)
17
- source_path = os.path.join(os.path.dirname(llm_instructions.__file__), '.github')
17
+ source_path = os.path.join(templates.copilot_template(), '.github')
18
18
  destination_path = os.path.join(current_working_directory, '.github')
19
19
 
20
20
  conflicting_files = []
@@ -23,8 +23,6 @@ Error: Current directory has not been initialized as a BioLib application.
23
23
  relative_dir = os.path.relpath(root, source_path)
24
24
  destination_dir = os.path.join(destination_path, relative_dir)
25
25
  for filename in filenames:
26
- if 'style' in filename and not style:
27
- continue
28
26
  source_file = os.path.join(root, filename)
29
27
  destination_file = os.path.join(destination_dir, filename)
30
28
  if os.path.exists(destination_file) and not force:
@@ -0,0 +1,59 @@
1
+ import os
2
+ import shutil
3
+ import sys
4
+
5
+ from biolib._internal.templates import templates
6
+
7
+
8
+ def add_gui_files(force=False, silent=False) -> None:
9
+ cwd = os.getcwd()
10
+ template_dir = templates.gui_template()
11
+
12
+ root_files = ['package.json', 'Dockerfile', 'index.html', 'vite.config.mts', '.yarnrc.yml']
13
+
14
+ conflicting_files = []
15
+
16
+ # Copy root_files to init_template root and rest to subdirectory
17
+ for root, _, filenames in os.walk(template_dir):
18
+ relative_dir = os.path.relpath(root, template_dir)
19
+
20
+ for filename in filenames:
21
+ if filename in root_files:
22
+ destination_dir = cwd
23
+ else:
24
+ if relative_dir == '.':
25
+ destination_dir = os.path.join(cwd, 'gui')
26
+ else:
27
+ destination_dir = os.path.join(cwd, 'gui', relative_dir)
28
+
29
+ source_file = os.path.join(root, filename)
30
+ destination_file = os.path.join(destination_dir, filename)
31
+
32
+ if filename == 'Dockerfile':
33
+ force = True
34
+
35
+ if os.path.exists(destination_file) and not force:
36
+ with open(source_file, 'rb') as fsrc, open(destination_file, 'rb') as fdest:
37
+ if fsrc.read() != fdest.read():
38
+ conflicting_files.append(os.path.relpath(destination_file, cwd))
39
+ else:
40
+ os.makedirs(destination_dir, exist_ok=True)
41
+ shutil.copy2(source_file, destination_file)
42
+
43
+ gitignore_path = os.path.join(cwd, '.gitignore')
44
+ with open(gitignore_path, 'a') as gitignore_file:
45
+ gitignore_file.write('\n# gui\n')
46
+ gitignore_file.write('.yarn\n')
47
+ gitignore_file.write('dist\n')
48
+ gitignore_file.write('yarn.lock\n')
49
+ gitignore_file.write('tsconfig.tsbuildinfo\n')
50
+ gitignore_file.write('node_modules\n')
51
+
52
+ if conflicting_files:
53
+ print('The following files were not overwritten. Use --force to override them:', file=sys.stderr)
54
+ for conflicting_file in list(set(conflicting_files)):
55
+ print(f' {conflicting_file}', file=sys.stderr)
56
+ exit(1)
57
+
58
+ if not silent:
59
+ print('gui files added to project root and gui/ subdirectory')
@@ -20,3 +20,5 @@ Apply the [general coding guidelines](./style-general.instructions.md) to all co
20
20
  - Follow the React hooks rules (no conditional hooks)
21
21
  - Prefer one component per file
22
22
  - Use Tailwindcss for styling
23
+ - Extract props in components with object destructuring like `const { prop1, prop2 } = props;`
24
+ - Instantiate functional components with props like `export default function MyComponent(props: IProps) { ... }`.
@@ -0,0 +1 @@
1
+ nodeLinker: node-modules
@@ -0,0 +1,17 @@
1
+ export default function App() {
2
+ return (
3
+ <div className="min-h-screen bg-gray-100 flex items-center justify-center">
4
+ <div className="text-center">
5
+ <h1 className="text-4xl font-bold mb-4">
6
+ Hello, BioLib!
7
+ </h1>
8
+ <p className="text-lg mb-2">
9
+ You have successfully set up your BioLib GUI application.
10
+ </p>
11
+ <p className="italic">
12
+ This is a simple React template with Tailwind CSS styling.
13
+ </p>
14
+ </div>
15
+ </div>
16
+ );
17
+ }
@@ -0,0 +1,26 @@
1
+ FROM node:24.4.1-alpine3.21 AS gui_builder
2
+
3
+ WORKDIR /home/biolib/
4
+
5
+ RUN corepack enable
6
+ COPY .yarnrc.yml .
7
+ COPY package.json .
8
+ COPY index.html .
9
+ COPY vite.config.mts .
10
+ RUN yarn install
11
+
12
+ COPY gui gui
13
+ RUN yarn build
14
+
15
+ FROM python:3.13.5-slim
16
+ WORKDIR /home/biolib/
17
+
18
+ COPY requirements.txt .
19
+ RUN pip install --no-cache-dir -r requirements.txt
20
+
21
+ COPY run.sh .
22
+ COPY run.py .
23
+
24
+ RUN mkdir output
25
+
26
+ COPY --from=gui_builder /home/biolib/dist/index.html gui.html
@@ -0,0 +1,5 @@
1
+ @import "tailwindcss";
2
+
3
+ * {
4
+ font-family: "Noto Sans", sans-serif;
5
+ }
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link href="gui/index.css" rel="stylesheet">
7
+ <title>BIOLIB_REPLACE_APP_NAME</title>
8
+ </head>
9
+ <body style="overflow: hidden; background: white">
10
+ <div id="root"></div>
11
+ <script type="module" src="gui/index.tsx"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,10 @@
1
+ import { StrictMode } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import App from "./App.tsx";
4
+ import "./index.css";
5
+
6
+ createRoot(document.getElementById("root")!).render(
7
+ <StrictMode>
8
+ <App />
9
+ </StrictMode>
10
+ );
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "biolib_replace_app_name",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc --noEmit -p gui/tsconfig.json && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "react": "18.3.1",
13
+ "react-dom": "18.3.1"
14
+ },
15
+ "devDependencies": {
16
+ "@tailwindcss/vite": "4.0.14",
17
+ "@types/react": "18.3.3",
18
+ "@types/react-dom": "18.3.0",
19
+ "@vitejs/plugin-react": "4.2.1",
20
+ "tailwindcss": "4.0.14",
21
+ "typescript": "5.2.2",
22
+ "vite": "5.3.4",
23
+ "vite-plugin-singlefile": "2.0.2"
24
+ },
25
+ "packageManager": "yarn@4.6.0"
26
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "target": "ES2020",
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "verbatimModuleSyntax": true,
13
+ "moduleDetection": "force",
14
+ "noEmit": true,
15
+ "jsx": "react-jsx",
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "noFallthroughCasesInSwitch": true
22
+ },
23
+ "include": ["."]
24
+ }
@@ -0,0 +1,8 @@
1
+ import { defineConfig } from "vite";
2
+ import react from "@vitejs/plugin-react";
3
+ import tailwindcss from "@tailwindcss/vite";
4
+ import { viteSingleFile } from "vite-plugin-singlefile";
5
+
6
+ export default defineConfig({
7
+ plugins: [react(), tailwindcss(), viteSingleFile()],
8
+ });
File without changes
@@ -1,5 +1,13 @@
1
1
  import os
2
2
 
3
3
 
4
- def init_template():
4
+ def init_template() -> str:
5
5
  return os.path.join(os.path.dirname(__file__), 'init_template')
6
+
7
+
8
+ def copilot_template() -> str:
9
+ return os.path.join(os.path.dirname(__file__), 'copilot_template')
10
+
11
+
12
+ def gui_template() -> str:
13
+ return os.path.join(os.path.dirname(__file__), 'gui_template')
biolib/cli/init.py CHANGED
@@ -6,6 +6,7 @@ import click
6
6
 
7
7
  from biolib import utils # Import like this to let BASE_URL_IS_PUBLIC_BIOLIB be set correctly
8
8
  from biolib._internal.add_copilot_prompts import add_copilot_prompts
9
+ from biolib._internal.add_gui_files import add_gui_files
9
10
  from biolib._internal.string_utils import normalize_for_docker_tag
10
11
  from biolib._internal.templates import templates
11
12
  from biolib.utils import BIOLIB_PACKAGE_VERSION
@@ -23,24 +24,27 @@ def init() -> None:
23
24
  'Remember to set the app URI in the .biolib/config.yml file later, '
24
25
  'and docker image name in the .biolib/config.yml and .github/workflows/biolib.yml files.'
25
26
  )
26
- copilot_enabled_input = input('Do you want to include Copilot instructions and prompts? [y/N]: ')
27
- include_copilot_enabled = copilot_enabled_input.lower() == 'y'
28
-
29
- include_copilot_style = True # Default to True if copilot is enabled
30
- if include_copilot_enabled:
31
- copilot_style_input = input('Do you want to include Copilot style prompts? [Y/n]: ')
32
- include_copilot_style = copilot_style_input.lower() != 'n'
33
-
34
- template_dir = templates.init_template()
27
+ advanced_setup_input = input('Do you want to set up advanced features like Copilot and GUI? [y/N]: ')
28
+ advanced_setup = advanced_setup_input.lower() == 'y'
29
+ include_copilot = False
30
+ include_gui = False
31
+ if advanced_setup:
32
+ copilot_enabled_input = input('Do you want to include Copilot instructions and prompts? [y/N]: ')
33
+ include_copilot = copilot_enabled_input.lower() == 'y'
34
+ include_gui_input = input('Do you want to include GUI setup? [y/N]: ')
35
+ include_gui = include_gui_input.lower() == 'y'
36
+
37
+ init_template_dir = templates.init_template()
35
38
  conflicting_files = []
36
39
  files_to_overwrite = set()
37
40
 
38
41
  try:
39
42
  # First pass: check for conflicts
40
- for root, dirs, filenames in os.walk(template_dir):
43
+ for root, dirs, filenames in os.walk(init_template_dir):
41
44
  dirs[:] = [d for d in dirs if '__pycache__' not in d]
42
- relative_dir = os.path.relpath(root, template_dir)
45
+ relative_dir = os.path.relpath(root, init_template_dir)
43
46
  destination_dir = cwd if relative_dir == '.' else os.path.join(cwd, relative_dir)
47
+
44
48
  for filename in filenames:
45
49
  source_file = os.path.join(root, filename)
46
50
  destination_file = os.path.join(destination_dir, filename)
@@ -61,18 +65,22 @@ def init() -> None:
61
65
  files_to_overwrite.add(conflicting_file)
62
66
 
63
67
  replace_app_uri = app_uri if app_uri else 'PUT_APP_URI_HERE'
68
+ replace_app_name = app_name if app_name else 'biolib-app'
64
69
 
65
70
  # Second pass: copy files (only if no conflicts)
66
- for root, dirs, filenames in os.walk(template_dir):
71
+ for root, dirs, filenames in os.walk(init_template_dir):
67
72
  dirs[:] = [d for d in dirs if '__pycache__' not in d]
68
- relative_dir = os.path.relpath(root, template_dir)
73
+ relative_dir = os.path.relpath(root, init_template_dir)
69
74
  destination_dir = os.path.join(cwd, relative_dir)
75
+
70
76
  os.makedirs(destination_dir, exist_ok=True)
71
77
 
72
78
  for filename in filenames:
73
79
  if utils.BASE_URL_IS_PUBLIC_BIOLIB and filename == 'biolib.yml':
74
80
  continue
75
81
 
82
+ relative_file_path = os.path.join(relative_dir, filename) if relative_dir != '.' else filename
83
+
76
84
  source_file = os.path.join(root, filename)
77
85
  destination_file = os.path.join(destination_dir, filename)
78
86
  relative_file_path = os.path.relpath(destination_file, cwd)
@@ -88,6 +96,7 @@ def init() -> None:
88
96
  'BIOLIB_REPLACE_DOCKER_TAG',
89
97
  docker_tag if docker_tag else 'PUT_DOCKER_TAG_HERE',
90
98
  )
99
+ new_content = new_content.replace('BIOLIB_REPLACE_APP_NAME', replace_app_name)
91
100
 
92
101
  with open(destination_file, 'w') as f:
93
102
  f.write(new_content)
@@ -99,8 +108,11 @@ def init() -> None:
99
108
  with open(readme_path, 'w') as readme_file:
100
109
  readme_file.write(f'# {app_name}\n')
101
110
 
102
- if include_copilot_enabled:
103
- add_copilot_prompts(force=False, style=include_copilot_style, silent=True)
111
+ if include_copilot:
112
+ add_copilot_prompts(force=False, silent=True)
113
+
114
+ if include_gui:
115
+ add_gui_files(force=False, silent=True)
104
116
 
105
117
  except KeyboardInterrupt:
106
118
  print('\nInit command cancelled.', file=sys.stderr)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.1007
3
+ Version: 1.2.1018
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -1,7 +1,8 @@
1
1
  biolib/__init__.py,sha256=o0cpNzP7OwPYfdw5Cq-XgsMYooQdQynZTUO3W-LFuKo,10657
2
2
  biolib/_data_record/data_record.py,sha256=zKvnh5T-dIVY46-kgVzMBoZ666ZhcTCFQnWvZT0D6RM,12026
3
3
  biolib/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- biolib/_internal/add_copilot_prompts.py,sha256=6gbqYsrTTUFTEEV62fp-UTDwZeJIjDfvywWgtW6AowQ,1967
4
+ biolib/_internal/add_copilot_prompts.py,sha256=wcIdrceFcfKSoEjvM4uNzhKZ0I1-MCFkfNO4duqtGHA,1861
5
+ biolib/_internal/add_gui_files.py,sha256=MrtvkIpe70tVVJYBBsMbRhjsxf55hFzlzn-ea2oinTc,2218
5
6
  biolib/_internal/data_record/__init__.py,sha256=fGdME6JGRU_2VxpJbYpGXYndjN-feUkmKY4fuMyq3cg,76
6
7
  biolib/_internal/data_record/data_record.py,sha256=SD3-tKQY2RZv9ZSVNUhd2ISDYV64Fk1Sc642qyf_Vis,4618
7
8
  biolib/_internal/data_record/push_data.py,sha256=-L3a_7zZzDCXabBu3O4lWPMAMeBbeRPTrBlEM-_5SCI,2693
@@ -15,18 +16,26 @@ biolib/_internal/lfs/__init__.py,sha256=gSWo_xg61UniYgD7yNYxeT4I9uaXBCBSi3_nmZjn
15
16
  biolib/_internal/lfs/cache.py,sha256=pQS2np21rdJ6I3DpoOutnzPHpLOZgUIS8TMltUJk_k4,2226
16
17
  biolib/_internal/libs/__init__.py,sha256=Jdf4tNPqe_oIIf6zYml6TiqhL_02Vyqwge6IELrAFhw,98
17
18
  biolib/_internal/libs/fusepy/__init__.py,sha256=AWDzNFS-XV_5yKb0Qx7kggIhPzq1nj_BZS5y2Nso08k,41944
18
- biolib/_internal/llm_instructions/.github/instructions/general-app-knowledge.instructions.md,sha256=-j8v0GRtDhHoqP2wcGUykiwU7HQ0DmkCNxw_01oKMdY,546
19
- biolib/_internal/llm_instructions/.github/instructions/style-general.instructions.md,sha256=tl2Ve1ZPlPBrH6CSrjIkiMA8xnM2tQIJs1cerKCyAkU,761
20
- biolib/_internal/llm_instructions/.github/instructions/style-python.instructions.md,sha256=xfypuPqMsz5ejobDoVI0HjmNqksl16aFuIol1nAhpHg,1034
21
- biolib/_internal/llm_instructions/.github/instructions/style-react-ts.instructions.md,sha256=GQoRL-bfPwwNIW4W0yN_guVIqFNVCG2_7adOCaxiz-w,755
22
- biolib/_internal/llm_instructions/.github/prompts/biolib_app_inputs.prompt.md,sha256=SMzXZImdID0yKjhE1fG54VrHdD8IVuwRxRKsMF-KjWs,697
23
- biolib/_internal/llm_instructions/.github/prompts/biolib_onboard_repo.prompt.md,sha256=BfCkVyafDHFBMu6qcvKlxpnXKJRHNDp5qR_fN4XB9pI,1515
24
- biolib/_internal/llm_instructions/.github/prompts/biolib_run_apps.prompt.md,sha256=-t1bmGr3zEFa6lKHaLcI98yq4Sg1TCMW8xbelNSHaOA,696
25
- biolib/_internal/llm_instructions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
19
  biolib/_internal/push_application.py,sha256=e0SnPh64X99ICUt5xPCIfbS3WHkUzMKLFFyaf6u2vqQ,18286
27
20
  biolib/_internal/runtime.py,sha256=BiHl4klUHr36MCpqKaUso4idHeBZfPAahLYRQrabFqA,486
28
21
  biolib/_internal/string_utils.py,sha256=N7J7oGu6_yA_z0pOiKqxEh__lRdiDLh6kigeDkQEZ5g,265
29
22
  biolib/_internal/templates/__init__.py,sha256=NVbhLUMC8HITzkLvP88Qu7FHaL-SvQord-DX3gh1Ykk,24
23
+ biolib/_internal/templates/copilot_template/.github/instructions/general-app-knowledge.instructions.md,sha256=-j8v0GRtDhHoqP2wcGUykiwU7HQ0DmkCNxw_01oKMdY,546
24
+ biolib/_internal/templates/copilot_template/.github/instructions/style-general.instructions.md,sha256=tl2Ve1ZPlPBrH6CSrjIkiMA8xnM2tQIJs1cerKCyAkU,761
25
+ biolib/_internal/templates/copilot_template/.github/instructions/style-python.instructions.md,sha256=xfypuPqMsz5ejobDoVI0HjmNqksl16aFuIol1nAhpHg,1034
26
+ biolib/_internal/templates/copilot_template/.github/instructions/style-react-ts.instructions.md,sha256=jrQDqeRxvX5mHZHY883tJT-Z0PHDAdbHqsjaC5I5XJU,964
27
+ biolib/_internal/templates/copilot_template/.github/prompts/biolib_app_inputs.prompt.md,sha256=SMzXZImdID0yKjhE1fG54VrHdD8IVuwRxRKsMF-KjWs,697
28
+ biolib/_internal/templates/copilot_template/.github/prompts/biolib_onboard_repo.prompt.md,sha256=BfCkVyafDHFBMu6qcvKlxpnXKJRHNDp5qR_fN4XB9pI,1515
29
+ biolib/_internal/templates/copilot_template/.github/prompts/biolib_run_apps.prompt.md,sha256=-t1bmGr3zEFa6lKHaLcI98yq4Sg1TCMW8xbelNSHaOA,696
30
+ biolib/_internal/templates/gui_template/.yarnrc.yml,sha256=Rz5t74b8A2OBIODAHQyLurCVZ3JWRg-k6nY-XUaX8nA,25
31
+ biolib/_internal/templates/gui_template/App.tsx,sha256=hh_r7P4Pn4HLaE8C1PoECawd81yoC4MfWPu7Op02kWg,509
32
+ biolib/_internal/templates/gui_template/Dockerfile,sha256=8-V5rcram1Ip21rMKKgzAKEKNiYkLJzdY42gy2jXrlg,446
33
+ biolib/_internal/templates/gui_template/index.css,sha256=WYds1xQY2of84ebHhRW9ummbw0Bg9N-EyfmBzJKigck,70
34
+ biolib/_internal/templates/gui_template/index.html,sha256=EM5xzJ9CsJalgzL-jLNkAoP4tgosw0WYExcH5W6DOs8,403
35
+ biolib/_internal/templates/gui_template/index.tsx,sha256=YrdrpcckwLo0kYIA-2egtzlo0OMWigGxnt7mNN4qmlU,234
36
+ biolib/_internal/templates/gui_template/package.json,sha256=iyYYUC0zKGWvZcH8YxN-3w-0N68W5vx-0WPlluMn6Y4,621
37
+ biolib/_internal/templates/gui_template/tsconfig.json,sha256=T3DJIzeLQ2BL8HLfPHI-IvHtJhnMXdHOoRjkmQlJQAw,541
38
+ biolib/_internal/templates/gui_template/vite.config.mts,sha256=Bf1bgRReU3XFsR6rX9yylW2IAxy2cDQI1FHBMjRnyQ4,271
30
39
  biolib/_internal/templates/init_template/.biolib/config.yml,sha256=y4ndTgbFvUE1UiGcIOqogT2Wm8jahGffeyU5rlCEltQ,427
31
40
  biolib/_internal/templates/init_template/.github/workflows/biolib.yml,sha256=sphjoiycV_oc4VbaA8wbUEokSMpnrdB6N-bYju_5Ibo,522
32
41
  biolib/_internal/templates/init_template/.gitignore,sha256=dR_jhtT0boUspgk3S5PPUwuO0o8gKGIbdwu8IH638CY,20
@@ -34,7 +43,7 @@ biolib/_internal/templates/init_template/Dockerfile,sha256=Wv2r9aiazkL1wOf_BT1f5
34
43
  biolib/_internal/templates/init_template/requirements.txt,sha256=2GnBHsKg4tX5F06Z4YeLuId6jQO3-HGTITsaVBTDG0Y,42
35
44
  biolib/_internal/templates/init_template/run.py,sha256=oat-Vzcz4XZilrTtgy8CzfltBAa5v6iduGof4Tuulhg,402
36
45
  biolib/_internal/templates/init_template/run.sh,sha256=CF25MYW8vNcZee6_Lydg0o5JDWG0YbrSvFHhMJ5I6x0,39
37
- biolib/_internal/templates/templates.py,sha256=-o0VdRMwPhnzL4VlCe3BZYl1aI9HLKtOmNjs6gu9fIQ,101
46
+ biolib/_internal/templates/templates.py,sha256=ni0euP0KD5NHkxJPIt__i2WvXxYIcC8qugQEoT9oIJQ,308
38
47
  biolib/_internal/tree_utils.py,sha256=_Q_6_NDtIiROcefymqxEVddjqti6Mt3OZ4U0GcDW61s,3904
39
48
  biolib/_internal/types/__init__.py,sha256=WvtlSHh77QhYVTLeRpoPAzqvByLzbEPf_ZqYGHFlQug,247
40
49
  biolib/_internal/types/account.py,sha256=_MY59S_8r3OqT630HzEoRnS6VnbbLm296wP2WrdpdjM,190
@@ -89,7 +98,7 @@ biolib/cli/__init__.py,sha256=IHC2bEyA27pvgp-18SGfFVJOP456elanz7suDP8D084,1316
89
98
  biolib/cli/auth.py,sha256=p9ZGY6ld2rnMbpsuRskvIQJNUHlSgYgcLTDsYGyUwyw,1407
90
99
  biolib/cli/data_record.py,sha256=t8DfJK2EZ_SNZ9drDA_N5Jqy8DNwf9f5SlFrIaOvtv0,3501
91
100
  biolib/cli/download_container.py,sha256=HIZVHOPmslGE5M2Dsp9r2cCkAEJx__vcsDz5Wt5LRos,483
92
- biolib/cli/init.py,sha256=GH_9GxfihhTKqn9-aAX6eFJR5GU2lCbKhpVeVcIccN0,4919
101
+ biolib/cli/init.py,sha256=BZ3MF9bvtyiFdc2VXIaUtQwLVc6wG508oO5WRgVNK5Y,5429
93
102
  biolib/cli/lfs.py,sha256=z2qHUwink85mv9yDgifbVKkVwuyknGhMDTfly_gLKJM,4151
94
103
  biolib/cli/push.py,sha256=J8BswMYVeTacZBHbm4K4a2XbS_I8kvfgRZLoby2wi3I,1695
95
104
  biolib/cli/run.py,sha256=RAAXbIx8Bi-4fNkEoz2ODJ0fEtyS7VxD3dkc2fVZwjY,2150
@@ -146,8 +155,8 @@ biolib/utils/cache_state.py,sha256=u256F37QSRIVwqKlbnCyzAX4EMI-kl6Dwu6qwj-Qmag,3
146
155
  biolib/utils/multipart_uploader.py,sha256=XvGP1I8tQuKhAH-QugPRoEsCi9qvbRk-DVBs5PNwwJo,8452
147
156
  biolib/utils/seq_util.py,sha256=Ozk0blGtPur_D9MwShD02r_mphyQmgZkx-lOHOwnlIM,6730
148
157
  biolib/utils/zip/remote_zip.py,sha256=0wErYlxir5921agfFeV1xVjf29l9VNgGQvNlWOlj2Yc,23232
149
- pybiolib-1.2.1007.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
150
- pybiolib-1.2.1007.dist-info/METADATA,sha256=GKPCUiOxbSfk7iB8dn1q1FF7Bncq6wdp0OZ53NQVg58,1571
151
- pybiolib-1.2.1007.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
152
- pybiolib-1.2.1007.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
153
- pybiolib-1.2.1007.dist-info/RECORD,,
158
+ pybiolib-1.2.1018.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
159
+ pybiolib-1.2.1018.dist-info/METADATA,sha256=R5L4RPDKBuA17gKLMRTVFWN2u6uTIRN3Q7xC2JeI-GY,1571
160
+ pybiolib-1.2.1018.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
161
+ pybiolib-1.2.1018.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
162
+ pybiolib-1.2.1018.dist-info/RECORD,,
File without changes