marimo-dev 0.3.0__tar.gz → 0.3.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: marimo-dev
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Build and publish python packages from marimo notebooks
5
5
  Author: Deufel
6
6
  Author-email: Deufel <MDeufel13@gmail.com>
@@ -13,13 +13,14 @@ Requires-Dist: mohtml>=0.1.11
13
13
  Requires-Dist: pydantic-ai-slim>=1.50.0
14
14
  Requires-Dist: pytest>=9.0.2
15
15
  Requires-Dist: python-fasthtml>=0.12.37
16
- Requires-Dist: youtube-transcript-api>=1.2.3
17
- Requires-Python: >=3.13
16
+ Requires-Python: >=3.12
18
17
  Project-URL: PyPI, https://pypi.org/project/marimo-dev/
19
18
  Project-URL: Repository, https://github.com/deufel/m-dev
20
19
  Description-Content-Type: text/markdown
21
20
 
22
21
  # marimo-dev
22
+ ![PyPI version](https://img.shields.io/pypi/v/marimo-dev)
23
+
23
24
 
24
25
  > [!WARNING]
25
26
  > This project is under active development and is not an official marimo tool - Mar 2026
@@ -1,4 +1,6 @@
1
1
  # marimo-dev
2
+ ![PyPI version](https://img.shields.io/pypi/v/marimo-dev)
3
+
2
4
 
3
5
  > [!WARNING]
4
6
  > This project is under active development and is not an official marimo tool - Mar 2026
@@ -4,10 +4,10 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "marimo-dev"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "Build and publish python packages from marimo notebooks"
9
9
  readme = "README.md"
10
- requires-python = ">=3.13"
10
+ requires-python = ">=3.12"
11
11
  dependencies = [
12
12
  "anthropic>=0.84.0",
13
13
  "fastcore>=1.10.0",
@@ -17,7 +17,6 @@ dependencies = [
17
17
  "pydantic-ai-slim>=1.50.0",
18
18
  "pytest>=9.0.2",
19
19
  "python-fasthtml>=0.12.37",
20
- "youtube-transcript-api>=1.2.3",
21
20
  ]
22
21
 
23
22
  [project.license]
@@ -1,5 +1,5 @@
1
1
  """Build and publish python packages from marimo notebooks"""
2
- __version__ = '0.3.0'
2
+ __version__ = '0.3.1'
3
3
  __author__ = 'Deufel'
4
4
  from .core import Config, read_config, Kind, Param, Node
5
5
  from .read import inline_doc, parse_params, parse_hash_pipe, parse_class_params, parse_class_methods, parse_ret, src_with_decs, is_export, parse_import, parse_const, parse_export, parse_node, parse_file, read_meta, nb_name, scan
@@ -65,10 +65,16 @@ def check_pypi_auth(test=True):
65
65
  return {'found': True, 'section': section, 'username': config[section].get('username', ''), 'preview': preview, 'source': str(pypirc)}
66
66
 
67
67
  def publish(
68
- test:bool=True, # Use Test PyPI if True, real PyPI if False
68
+ test=True # When ready to upload to PyPi change this to false
69
69
  ):
70
- "Build and publish package to PyPI. Looks for ~/.pypirc for credentials, otherwise prompts."
71
-
70
+ "Build and publish package to PyPI."
71
+ platform = 'testpypi' if test else 'pypi'
72
+ auth = check_credentials(platform)
73
+ if not auth['found']:
74
+ print(f"❌ {auth['msg']}")
75
+ return
76
+
77
+ print(f"✅ Authenticated as {auth['username']} ({auth['preview']}) from {auth['source']}")
72
78
  print("Rebuilding package from notebooks...")
73
79
  build()
74
80
 
@@ -76,18 +82,24 @@ def publish(
76
82
  print("Building distribution...")
77
83
  subprocess.run(['uv', 'build'], check=True)
78
84
 
79
- pypirc, cmd = Path.home() / '.pypirc', ['uv', 'publish']
80
- section = 'testpypi' if test else 'pypi'
81
-
85
+ cmd = ['uv', 'publish']
82
86
  if test: cmd.extend(['--publish-url', 'https://test.pypi.org/legacy/'])
83
87
  else: cmd.extend(['--publish-url', 'https://upload.pypi.org/legacy/'])
84
88
 
85
- if pypirc.exists():
86
- config = configparser.ConfigParser()
87
- config.read(pypirc)
88
- if section in config:
89
- username, password = config[section].get('username', '__token__'), config[section].get('password', '')
90
- cmd.extend(['--username', username, '--password', password])
89
+ config = configparser.ConfigParser()
90
+ config.read(Path.home() / '.pypirc')
91
+ section = auth['section'] if 'section' in auth else platform
92
+ username = config[section].get('username', '__token__')
93
+ password = config[section].get('password', '')
94
+ cmd.extend(['--username', username, '--password', password])
91
95
 
92
- print(f"Publishing to {'Test ' if test else ''}PyPI...")
93
- subprocess.run(cmd, check=True)
96
+ target = 'Test PyPI' if test else 'PyPI'
97
+ print(f"Publishing to {target}...")
98
+ try:
99
+ subprocess.run(cmd, capture_output=True, text=True, check=True)
100
+ print(f"✅ Published to {target}!")
101
+ except subprocess.CalledProcessError as e:
102
+ if '403' in (e.stderr or ''):
103
+ print(f"❌ Auth failed. Token may be expired. Regenerate at {CREDENTIALS[platform]['url']}")
104
+ else:
105
+ print(f"❌ Publish failed: {e.stderr}")