fastgit 0.0.2__tar.gz → 0.0.4__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.
fastgit-0.0.4/PKG-INFO ADDED
@@ -0,0 +1,75 @@
1
+ Metadata-Version: 2.4
2
+ Name: fastgit
3
+ Version: 0.0.4
4
+ Summary: Use git from python, fast
5
+ Author-email: Jeremy Howard <github@jhoward.fastmail.fm>
6
+ License: Apache-2.0
7
+ Project-URL: Repository, https://github.com/AnswerDotAI/fastgit
8
+ Project-URL: Documentation, https://AnswerDotAI.github.io/fastgit
9
+ Keywords: nbdev,jupyter,notebook,python
10
+ Classifier: Natural Language :: English
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: license-file
19
+
20
+ # fastgit
21
+
22
+
23
+ <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
24
+
25
+ ## Usage
26
+
27
+ ### Installation
28
+
29
+ Install latest from [pypi](https://pypi.org/project/fastgit/)
30
+
31
+ ``` sh
32
+ $ pip install fastgit
33
+ ```
34
+
35
+ ### How to use
36
+
37
+ In this example we run `git init` on a directory, add a *.gitignore*,
38
+ and commit it.
39
+
40
+ ``` python
41
+ import shutil, tempfile
42
+ ```
43
+
44
+ ``` python
45
+ def _git_init(g):
46
+ if g.exists: return # Return early if git already initialised
47
+ g.init(b='main')
48
+ g.config('user.name', 'fastgit')
49
+ g.config('user.email', 'fastgit@example.com')
50
+ (g.d/".gitignore").mk_write("*.bak")
51
+ g.add(".gitignore")
52
+ g.commit(m="add .gitignore")
53
+ ```
54
+
55
+ ``` python
56
+ td = tempfile.mkdtemp()
57
+ g = Git(td)
58
+ _git_init(g)
59
+ assert 'add .gitignore' in g.last_commit
60
+ print(g.branch('--show-current'))
61
+ ```
62
+
63
+ main
64
+
65
+ You can also pass path arguments after `--` using the `__` parameter:
66
+
67
+ ``` python
68
+ g.log('--oneline', __=['.gitignore'])
69
+ ```
70
+
71
+ '22a9a5d add .gitignore'
72
+
73
+ ``` python
74
+ shutil.rmtree(td)
75
+ ```
@@ -19,7 +19,7 @@ In this example we run `git init` on a directory, add a *.gitignore*,
19
19
  and commit it.
20
20
 
21
21
  ``` python
22
- import tempfile
22
+ import shutil, tempfile
23
23
  ```
24
24
 
25
25
  ``` python
@@ -34,11 +34,23 @@ def _git_init(g):
34
34
  ```
35
35
 
36
36
  ``` python
37
- with tempfile.TemporaryDirectory() as td:
38
- g = Git(td)
39
- _git_init(g)
40
- assert 'add .gitignore' in g.last_commit
41
- print(g.branch('--show-current'))
37
+ td = tempfile.mkdtemp()
38
+ g = Git(td)
39
+ _git_init(g)
40
+ assert 'add .gitignore' in g.last_commit
41
+ print(g.branch('--show-current'))
42
42
  ```
43
43
 
44
44
  main
45
+
46
+ You can also pass path arguments after `--` using the `__` parameter:
47
+
48
+ ``` python
49
+ g.log('--oneline', __=['.gitignore'])
50
+ ```
51
+
52
+ '22a9a5d add .gitignore'
53
+
54
+ ``` python
55
+ shutil.rmtree(td)
56
+ ```
@@ -0,0 +1,3 @@
1
+ __version__ = "0.0.4"
2
+
3
+ from .core import *
@@ -13,7 +13,7 @@ import shutil,stat
13
13
 
14
14
  # %% ../nbs/00_core.ipynb #e4c0a290
15
15
  def callgit(path, *args, split=None, uname=None):
16
- fp = Path(path).resolve()
16
+ fp = Path(path).expanduser().resolve()
17
17
  args = ['git', '-C', str(fp)] + list(args)
18
18
  if uname: args = ['/usr/bin/sudo', '-u', uname] + args
19
19
  res = subprocess.run(args, capture_output=True, text=True, check=True).stdout.strip()
@@ -27,14 +27,16 @@ def get_top(folder):
27
27
 
28
28
  # %% ../nbs/00_core.ipynb #97f78839
29
29
  class Git:
30
- def __init__(self, d): self.d = Path(d)
30
+ def __init__(self, d): self.d = Path(d).expanduser()
31
31
 
32
32
  def __call__(self, cmd, *args, split=None, mute_errors=False, **kwargs):
33
+ paths = [str(p) for p in listify(kwargs.pop('__', None) or [])]
33
34
  args = listify(args)
34
35
  args += concat((f'-{k}',v) for k,v in kwargs.items() if len(k)==1 and v is not True)
35
36
  args += [f'-{k}' for k,v in kwargs.items() if len(k)==1 and v is True]
36
37
  args += [f'--{k.replace("_","-")}={v}' for k,v in kwargs.items() if len(k)>1 and v is not True and v is not False]
37
38
  args += [f'--{k.replace("_","-")}' for k,v in kwargs.items() if len(k)>1 and v is True]
39
+ if paths: args += ['--'] + paths
38
40
  try: return callgit(self.d, cmd, *args, split=split)
39
41
  except CalledProcessError as e:
40
42
  if not mute_errors: print(f'ERROR: Git.__call__ caught exception {e} \n with stderr={e.stderr}')
@@ -0,0 +1,75 @@
1
+ Metadata-Version: 2.4
2
+ Name: fastgit
3
+ Version: 0.0.4
4
+ Summary: Use git from python, fast
5
+ Author-email: Jeremy Howard <github@jhoward.fastmail.fm>
6
+ License: Apache-2.0
7
+ Project-URL: Repository, https://github.com/AnswerDotAI/fastgit
8
+ Project-URL: Documentation, https://AnswerDotAI.github.io/fastgit
9
+ Keywords: nbdev,jupyter,notebook,python
10
+ Classifier: Natural Language :: English
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: license-file
19
+
20
+ # fastgit
21
+
22
+
23
+ <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
24
+
25
+ ## Usage
26
+
27
+ ### Installation
28
+
29
+ Install latest from [pypi](https://pypi.org/project/fastgit/)
30
+
31
+ ``` sh
32
+ $ pip install fastgit
33
+ ```
34
+
35
+ ### How to use
36
+
37
+ In this example we run `git init` on a directory, add a *.gitignore*,
38
+ and commit it.
39
+
40
+ ``` python
41
+ import shutil, tempfile
42
+ ```
43
+
44
+ ``` python
45
+ def _git_init(g):
46
+ if g.exists: return # Return early if git already initialised
47
+ g.init(b='main')
48
+ g.config('user.name', 'fastgit')
49
+ g.config('user.email', 'fastgit@example.com')
50
+ (g.d/".gitignore").mk_write("*.bak")
51
+ g.add(".gitignore")
52
+ g.commit(m="add .gitignore")
53
+ ```
54
+
55
+ ``` python
56
+ td = tempfile.mkdtemp()
57
+ g = Git(td)
58
+ _git_init(g)
59
+ assert 'add .gitignore' in g.last_commit
60
+ print(g.branch('--show-current'))
61
+ ```
62
+
63
+ main
64
+
65
+ You can also pass path arguments after `--` using the `__` parameter:
66
+
67
+ ``` python
68
+ g.log('--oneline', __=['.gitignore'])
69
+ ```
70
+
71
+ '22a9a5d add .gitignore'
72
+
73
+ ``` python
74
+ shutil.rmtree(td)
75
+ ```
@@ -2,8 +2,6 @@ LICENSE
2
2
  MANIFEST.in
3
3
  README.md
4
4
  pyproject.toml
5
- settings.ini
6
- setup.py
7
5
  fastgit/__init__.py
8
6
  fastgit/_modidx.py
9
7
  fastgit/core.py
@@ -11,6 +9,4 @@ fastgit.egg-info/PKG-INFO
11
9
  fastgit.egg-info/SOURCES.txt
12
10
  fastgit.egg-info/dependency_links.txt
13
11
  fastgit.egg-info/entry_points.txt
14
- fastgit.egg-info/not-zip-safe
15
- fastgit.egg-info/requires.txt
16
12
  fastgit.egg-info/top_level.txt
@@ -0,0 +1,31 @@
1
+ [build-system]
2
+ requires = ["setuptools>=64"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "fastgit"
7
+ dynamic = ["version"]
8
+ description = "Use git from python, fast"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ license = {text = "Apache-2.0"}
12
+ authors = [{name = "Jeremy Howard", email = "github@jhoward.fastmail.fm"}]
13
+ keywords = ['nbdev', 'jupyter', 'notebook', 'python']
14
+ classifiers = ["Natural Language :: English", "Intended Audience :: Developers", "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only"]
15
+ dependencies = []
16
+
17
+ [project.urls]
18
+ Repository = "https://github.com/AnswerDotAI/fastgit"
19
+ Documentation = "https://AnswerDotAI.github.io/fastgit"
20
+
21
+ [project.entry-points.nbdev]
22
+ fastgit = "fastgit._modidx:d"
23
+
24
+ [tool.setuptools.dynamic]
25
+ version = {attr = "fastgit.__version__"}
26
+
27
+ [tool.setuptools.packages.find]
28
+ include = ["fastgit"]
29
+
30
+ [tool.nbdev]
31
+ custom_sidebar = false
fastgit-0.0.2/PKG-INFO DELETED
@@ -1,78 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fastgit
3
- Version: 0.0.2
4
- Summary: Use git from python, fast
5
- Home-page: https://github.com/AnswerDotAI/fastgit
6
- Author: Jeremy Howard
7
- Author-email: github@jhoward.fastmail.fm
8
- License: Apache Software License 2.0
9
- Keywords: nbdev jupyter notebook python
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Natural Language :: English
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: License :: OSI Approved :: Apache Software License
18
- Requires-Python: >=3.9
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- Provides-Extra: dev
22
- Dynamic: author
23
- Dynamic: author-email
24
- Dynamic: classifier
25
- Dynamic: description
26
- Dynamic: description-content-type
27
- Dynamic: home-page
28
- Dynamic: keywords
29
- Dynamic: license
30
- Dynamic: license-file
31
- Dynamic: provides-extra
32
- Dynamic: requires-python
33
- Dynamic: summary
34
-
35
- # fastgit
36
-
37
-
38
- <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
39
-
40
- ## Usage
41
-
42
- ### Installation
43
-
44
- Install latest from [pypi](https://pypi.org/project/fastgit/)
45
-
46
- ``` sh
47
- $ pip install fastgit
48
- ```
49
-
50
- ### How to use
51
-
52
- In this example we run `git init` on a directory, add a *.gitignore*,
53
- and commit it.
54
-
55
- ``` python
56
- import tempfile
57
- ```
58
-
59
- ``` python
60
- def _git_init(g):
61
- if g.exists: return # Return early if git already initialised
62
- g.init(b='main')
63
- g.config('user.name', 'fastgit')
64
- g.config('user.email', 'fastgit@example.com')
65
- (g.d/".gitignore").mk_write("*.bak")
66
- g.add(".gitignore")
67
- g.commit(m="add .gitignore")
68
- ```
69
-
70
- ``` python
71
- with tempfile.TemporaryDirectory() as td:
72
- g = Git(td)
73
- _git_init(g)
74
- assert 'add .gitignore' in g.last_commit
75
- print(g.branch('--show-current'))
76
- ```
77
-
78
- main
@@ -1,2 +0,0 @@
1
- __version__ = "0.0.2"
2
- from .core import *
@@ -1,78 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fastgit
3
- Version: 0.0.2
4
- Summary: Use git from python, fast
5
- Home-page: https://github.com/AnswerDotAI/fastgit
6
- Author: Jeremy Howard
7
- Author-email: github@jhoward.fastmail.fm
8
- License: Apache Software License 2.0
9
- Keywords: nbdev jupyter notebook python
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Natural Language :: English
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: License :: OSI Approved :: Apache Software License
18
- Requires-Python: >=3.9
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- Provides-Extra: dev
22
- Dynamic: author
23
- Dynamic: author-email
24
- Dynamic: classifier
25
- Dynamic: description
26
- Dynamic: description-content-type
27
- Dynamic: home-page
28
- Dynamic: keywords
29
- Dynamic: license
30
- Dynamic: license-file
31
- Dynamic: provides-extra
32
- Dynamic: requires-python
33
- Dynamic: summary
34
-
35
- # fastgit
36
-
37
-
38
- <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
39
-
40
- ## Usage
41
-
42
- ### Installation
43
-
44
- Install latest from [pypi](https://pypi.org/project/fastgit/)
45
-
46
- ``` sh
47
- $ pip install fastgit
48
- ```
49
-
50
- ### How to use
51
-
52
- In this example we run `git init` on a directory, add a *.gitignore*,
53
- and commit it.
54
-
55
- ``` python
56
- import tempfile
57
- ```
58
-
59
- ``` python
60
- def _git_init(g):
61
- if g.exists: return # Return early if git already initialised
62
- g.init(b='main')
63
- g.config('user.name', 'fastgit')
64
- g.config('user.email', 'fastgit@example.com')
65
- (g.d/".gitignore").mk_write("*.bak")
66
- g.add(".gitignore")
67
- g.commit(m="add .gitignore")
68
- ```
69
-
70
- ``` python
71
- with tempfile.TemporaryDirectory() as td:
72
- g = Git(td)
73
- _git_init(g)
74
- assert 'add .gitignore' in g.last_commit
75
- print(g.branch('--show-current'))
76
- ```
77
-
78
- main
@@ -1 +0,0 @@
1
-
@@ -1,2 +0,0 @@
1
-
2
- [dev]
@@ -1,11 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools>=64.0"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name="fastgit"
7
- requires-python=">=3.9"
8
- dynamic = [ "keywords", "description", "version", "dependencies", "optional-dependencies", "readme", "license", "authors", "classifiers", "entry-points", "scripts", "urls"]
9
-
10
- [tool.uv]
11
- cache-keys = [{ file = "pyproject.toml" }, { file = "settings.ini" }, { file = "setup.py" }]
@@ -1,38 +0,0 @@
1
- [DEFAULT]
2
- repo = fastgit
3
- lib_name = fastgit
4
- version = 0.0.2
5
- min_python = 3.9
6
- license = apache2
7
- black_formatting = False
8
- doc_path = _docs
9
- lib_path = fastgit
10
- nbs_path = nbs
11
- recursive = True
12
- tst_flags = notest
13
- put_version_in_init = True
14
- update_pyproject = True
15
- branch = main
16
- custom_sidebar = False
17
- doc_host = https://AnswerDotAI.github.io
18
- doc_baseurl = /fastgit
19
- git_url = https://github.com/AnswerDotAI/fastgit
20
- title = fastgit
21
- audience = Developers
22
- author = Jeremy Howard
23
- author_email = github@jhoward.fastmail.fm
24
- copyright = 2026 onwards, Jeremy Howard
25
- description = Use git from python, fast
26
- keywords = nbdev jupyter notebook python
27
- language = English
28
- status = 3
29
- user = AnswerDotAI
30
- readme_nb = index.ipynb
31
- allowed_metadata_keys =
32
- allowed_cell_metadata_keys =
33
- jupyter_hooks = False
34
- clean_ids = True
35
- clear_all = False
36
- cell_number = True
37
- skip_procs =
38
-
fastgit-0.0.2/setup.py DELETED
@@ -1,64 +0,0 @@
1
- from pkg_resources import parse_version
2
- from configparser import ConfigParser
3
- import setuptools, shlex
4
- assert parse_version(setuptools.__version__)>=parse_version('36.2')
5
-
6
- # note: all settings are in settings.ini; edit there, not here
7
- config = ConfigParser(delimiters=['='])
8
- config.read('settings.ini', encoding='utf-8')
9
- cfg = config['DEFAULT']
10
-
11
- cfg_keys = 'version description keywords author author_email'.split()
12
- expected = cfg_keys + "lib_name user branch license status min_python audience language".split()
13
- for o in expected: assert o in cfg, "missing expected setting: {}".format(o)
14
- setup_cfg = {o:cfg[o] for o in cfg_keys}
15
-
16
- licenses = {
17
- 'apache2': ('Apache Software License 2.0','OSI Approved :: Apache Software License'),
18
- 'mit': ('MIT License', 'OSI Approved :: MIT License'),
19
- 'gpl2': ('GNU General Public License v2', 'OSI Approved :: GNU General Public License v2 (GPLv2)'),
20
- 'gpl3': ('GNU General Public License v3', 'OSI Approved :: GNU General Public License v3 (GPLv3)'),
21
- 'bsd3': ('BSD License', 'OSI Approved :: BSD License'),
22
- }
23
- statuses = [ '1 - Planning', '2 - Pre-Alpha', '3 - Alpha',
24
- '4 - Beta', '5 - Production/Stable', '6 - Mature', '7 - Inactive' ]
25
- py_versions = '3.6 3.7 3.8 3.9 3.10 3.11 3.12'.split()
26
-
27
- requirements = shlex.split(cfg.get('requirements', ''))
28
- if cfg.get('pip_requirements'): requirements += shlex.split(cfg.get('pip_requirements', ''))
29
- min_python = cfg['min_python']
30
- lic = licenses.get(cfg['license'].lower(), (cfg['license'], None))
31
- dev_requirements = (cfg.get('dev_requirements') or '').split()
32
-
33
- package_data = dict()
34
- pkg_data = cfg.get('package_data', None)
35
- if pkg_data:
36
- package_data[cfg['lib_name']] = pkg_data.split() # split as multiple files might be listed
37
- # Add package data to setup_cfg for setuptools.setup(..., **setup_cfg)
38
- setup_cfg['package_data'] = package_data
39
-
40
- setuptools.setup(
41
- name = cfg['lib_name'],
42
- license = lic[0],
43
- classifiers = [
44
- 'Development Status :: ' + statuses[int(cfg['status'])],
45
- 'Intended Audience :: ' + cfg['audience'].title(),
46
- 'Natural Language :: ' + cfg['language'].title(),
47
- ] + ['Programming Language :: Python :: '+o for o in py_versions[py_versions.index(min_python):]] + (['License :: ' + lic[1] ] if lic[1] else []),
48
- url = cfg['git_url'],
49
- packages = setuptools.find_packages(),
50
- include_package_data = True,
51
- install_requires = requirements,
52
- extras_require={ 'dev': dev_requirements },
53
- dependency_links = cfg.get('dep_links','').split(),
54
- python_requires = '>=' + cfg['min_python'],
55
- long_description = open('README.md', encoding='utf-8').read(),
56
- long_description_content_type = 'text/markdown',
57
- zip_safe = False,
58
- entry_points = {
59
- 'console_scripts': cfg.get('console_scripts','').split(),
60
- 'nbdev': [f'{cfg.get("lib_path")}={cfg.get("lib_path")}._modidx:d']
61
- },
62
- **setup_cfg)
63
-
64
-
File without changes
File without changes
File without changes
File without changes