omdev 0.0.0.dev112__py3-none-any.whl → 0.0.0.dev113__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.

Potentially problematic release.


This version of omdev might be problematic. Click here for more details.

omdev/tools/git.py CHANGED
@@ -1,13 +1,17 @@
1
1
  import os
2
2
  import re
3
3
  import subprocess
4
+ import typing as ta
4
5
  import urllib.parse
5
6
 
6
7
  from omlish import argparse as ap
7
8
  from omlish import check
8
9
  from omlish import logs
10
+ from omlish.formats import json
9
11
 
10
12
  from ..cli import CliModule
13
+ from ..git import GitStatusLine
14
+ from ..git import get_git_status
11
15
 
12
16
 
13
17
  def rev_parse(rev: str) -> str:
@@ -124,6 +128,56 @@ class Cli(ap.Cli):
124
128
  else:
125
129
  print(base_rev)
126
130
 
131
+ @ap.command(
132
+ ap.arg('-v', '--verbose', action='store_true'),
133
+ )
134
+ def status(self) -> None:
135
+ st = get_git_status()
136
+
137
+ def gsl_dct(gsl: GitStatusLine) -> ta.Mapping[str, ta.Any]:
138
+ return {
139
+ 'x': gsl.x.name,
140
+ 'y': gsl.y.name,
141
+ 'a': gsl.a,
142
+ **({'b': gsl.b} if gsl.b is not None else {}),
143
+ }
144
+
145
+ def gsl_dct_lst(gsls: ta.Iterable[GitStatusLine]) -> ta.Sequence[ta.Mapping[str, ta.Any]]:
146
+ return [gsl_dct(gsl) for gsl in sorted(gsls, key=lambda gsl: gsl.a)]
147
+
148
+ if self.args.verbose:
149
+ dct = {
150
+ 'by_x': {x.name: gsl_dct_lst(lst) for x, lst in st.by_x.items()},
151
+ 'by_y': {y.name: gsl_dct_lst(lst) for y, lst in st.by_x.items()},
152
+
153
+ 'by_a': {a: gsl_dct(gsl) for a, gsl in sorted(st.by_a.items(), key=lambda t: t[0])},
154
+ 'by_b': {b: gsl_dct(gsl) for b, gsl in sorted(st.by_b.items(), key=lambda t: t[0])},
155
+
156
+ 'has_unmerged': st.has_unmerged,
157
+ 'has_staged': st.has_staged,
158
+ 'has_dirty': st.has_dirty,
159
+ }
160
+
161
+ print(json.dumps_pretty(dct))
162
+
163
+ else:
164
+ print(json.dumps_pretty([gsl_dct(gsl) for gsl in st]))
165
+
166
+ @ap.command(
167
+ ap.arg('-m', '--message', default='--'),
168
+ aliases=['acp'],
169
+ )
170
+ def add_commit_push(self) -> None:
171
+ st = get_git_status()
172
+
173
+ if st.has_dirty:
174
+ subprocess.check_call(['git', 'add', '.'])
175
+
176
+ if st.has_staged or st.has_dirty:
177
+ subprocess.check_call(['git', 'commit', '-m', self.args.message])
178
+
179
+ subprocess.check_call(['git', 'push'])
180
+
127
181
 
128
182
  # @omlish-manifest
129
183
  _CLI_MODULE = CliModule('git', __name__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev112
3
+ Version: 0.0.0.dev113
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish ==0.0.0.dev112
15
+ Requires-Dist: omlish ==0.0.0.dev113
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black ~=24.10 ; extra == 'all'
18
18
  Requires-Dist: pycparser ~=2.22 ; extra == 'all'
@@ -1,11 +1,11 @@
1
- omdev/.manifests.json,sha256=CttiykwDkNVtWsqk7xCLY0o7eUxPVTJvfS5enx6xg5g,7479
1
+ omdev/.manifests.json,sha256=CYQZv4g8omAD0yoqcBx5TU55gcBdD4B3aVbcOLLawiQ,7479
2
2
  omdev/__about__.py,sha256=n5x-SO70OgbDQFzQ1d7sZDVMsnkQc4PxQZPFaIQFa0E,1281
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/bracepy.py,sha256=I8EdqtDvxzAi3I8TuMEW-RBfwXfqKbwp06CfOdj3L1o,2743
5
5
  omdev/classdot.py,sha256=YOvgy6x295I_8NKBbBlRVd3AN7Osirm_Lqt4Wj0j9rY,1631
6
6
  omdev/cmake.py,sha256=Diy2ry65806dQP125DAstD3w46z_wszMH7PwC2-6iik,4578
7
7
  omdev/findimports.py,sha256=2t8QP852saEEJFeXySEzhi_nxRSxghlkXz2jVdvy08M,2392
8
- omdev/git.py,sha256=riM2KqSpQPC3N89uipd7Vm3kVgv4EYYDBU9tV1Z8juM,2208
8
+ omdev/git.py,sha256=B3gnqL75OZqwMvANdZL3cyah6izdM5bZfPJhG134lD0,10520
9
9
  omdev/imgur.py,sha256=il12R3t19tALolteYCZywvcdQUEOcgvPyUYgWtKiqt4,2993
10
10
  omdev/revisions.py,sha256=U657hf4zeEN32y3g4CzqCAodx_HlfkHj2cIIKALNFDo,5009
11
11
  omdev/secrets.py,sha256=bcquaBIDKqX4UIKOzUuKrX7nxVCenj67rRHIMIrd9bk,540
@@ -108,7 +108,7 @@ omdev/ptk/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  omdev/ptk/apps/ncdu.py,sha256=dOkEJoc2Wjv1u_Uge7Vpei_LvXldoPP5833Eia355tc,4548
109
109
  omdev/pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
110
  omdev/pycharm/__main__.py,sha256=hUPp11D024eMdT86BxXiRVtF7AGBk5W6Zn8_mEHSksY,163
111
- omdev/pycharm/cli.py,sha256=XDR3fYUnGdK2oys3IKs7QrGbYwXUiMba16DNXdMVlAA,2209
111
+ omdev/pycharm/cli.py,sha256=WyUlFuG4jAmd7pB5tnZJ54FH1y1orDX3sjB1EWgbmmQ,2343
112
112
  omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
113
113
  omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
114
114
  omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
@@ -122,7 +122,7 @@ omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
122
122
  omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
123
123
  omdev/scripts/importtrace.py,sha256=Jbo3Yk2RAbE8_tJ97iTcVNpoxCJxrRb2tl1W_CV3NG0,14067
124
124
  omdev/scripts/interp.py,sha256=U6mU2RPZjwcBhn4Vl4SrAyDUFcf7bBxBnPY5FHCxosw,72496
125
- omdev/scripts/pyproject.py,sha256=RNWsO9-cu6MUXuWFT1Y200euUu6WcAC4orwGEUoGVWA,165526
125
+ omdev/scripts/pyproject.py,sha256=e2Ncxiju1GinYaXa_PJ3qAyiOApWepS-_uWjcKcJwtw,173682
126
126
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
127
127
  omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
128
128
  omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
@@ -131,7 +131,7 @@ omdev/toml/writer.py,sha256=lk3on3YXVbWuLJa-xsOzOhs1bBAT1vXqw4mBbluZl_w,3040
131
131
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
132
132
  omdev/tools/doc.py,sha256=mv9XfitzqXl3vFHSenv01xHCxWf8g03rUAb_sqoty98,2556
133
133
  omdev/tools/docker.py,sha256=k2BrVvFYwyGov064CPHd_HWo9aqR1zHc2UeEsVwPth4,6827
134
- omdev/tools/git.py,sha256=IARrfL9R9BHpmTBia3svbPeCzf_4qlCCbOsLpohsfUI,4184
134
+ omdev/tools/git.py,sha256=sj3I8chXVzcZQyBIP8trq5_96EOXNTmu5YPOWePkR9A,5995
135
135
  omdev/tools/importscan.py,sha256=QeGjR3UGcuuuDUiisFuAXWHlcKJScGxGEcU6tfOh2CM,4069
136
136
  omdev/tools/mkrelimp.py,sha256=wsJAjTIf3nqcSfnT9TkDpS1VUOoM9W2Az5tZdWuzyLM,4054
137
137
  omdev/tools/notebook.py,sha256=M8Xi_gfZdlahnyFLtp0RBgYZPSHWQStMMDYZc71Zync,3494
@@ -142,9 +142,9 @@ omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
142
142
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
144
144
  omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
145
- omdev-0.0.0.dev112.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
146
- omdev-0.0.0.dev112.dist-info/METADATA,sha256=VeCQ5RyISLmbtXUOxqiBvvzJW3kHbcsb8l6KjNrg0C8,1810
147
- omdev-0.0.0.dev112.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
148
- omdev-0.0.0.dev112.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
149
- omdev-0.0.0.dev112.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
150
- omdev-0.0.0.dev112.dist-info/RECORD,,
145
+ omdev-0.0.0.dev113.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
146
+ omdev-0.0.0.dev113.dist-info/METADATA,sha256=OEbh_tGsx98S71e87wp4wNTZkVEVZLj8_rpjpiAPQo0,1810
147
+ omdev-0.0.0.dev113.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
148
+ omdev-0.0.0.dev113.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
149
+ omdev-0.0.0.dev113.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
150
+ omdev-0.0.0.dev113.dist-info/RECORD,,