omdev 0.0.0.dev111__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.dev111
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.dev111
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=iQOdJW9W9NbsmuMbkTfWYYy6acGL22P_dmhFwJBdCZc,7214
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
@@ -106,6 +106,9 @@ omdev/precheck/scripts.py,sha256=Xw9kkQzlDd_2V9av9qlaNpNZG9jZdy3TTo7x60MeR2I,127
106
106
  omdev/ptk/__init__.py,sha256=StAwXQ96e8Xkkg7ciR9oBBhcSgqHT76vhoZML82BuY0,447
107
107
  omdev/ptk/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  omdev/ptk/apps/ncdu.py,sha256=dOkEJoc2Wjv1u_Uge7Vpei_LvXldoPP5833Eia355tc,4548
109
+ omdev/pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
+ omdev/pycharm/__main__.py,sha256=hUPp11D024eMdT86BxXiRVtF7AGBk5W6Zn8_mEHSksY,163
111
+ omdev/pycharm/cli.py,sha256=WyUlFuG4jAmd7pB5tnZJ54FH1y1orDX3sjB1EWgbmmQ,2343
109
112
  omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
110
113
  omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
111
114
  omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
@@ -119,7 +122,7 @@ omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
119
122
  omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
120
123
  omdev/scripts/importtrace.py,sha256=Jbo3Yk2RAbE8_tJ97iTcVNpoxCJxrRb2tl1W_CV3NG0,14067
121
124
  omdev/scripts/interp.py,sha256=U6mU2RPZjwcBhn4Vl4SrAyDUFcf7bBxBnPY5FHCxosw,72496
122
- omdev/scripts/pyproject.py,sha256=RNWsO9-cu6MUXuWFT1Y200euUu6WcAC4orwGEUoGVWA,165526
125
+ omdev/scripts/pyproject.py,sha256=e2Ncxiju1GinYaXa_PJ3qAyiOApWepS-_uWjcKcJwtw,173682
123
126
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
124
127
  omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
125
128
  omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
@@ -128,7 +131,7 @@ omdev/toml/writer.py,sha256=lk3on3YXVbWuLJa-xsOzOhs1bBAT1vXqw4mBbluZl_w,3040
128
131
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
129
132
  omdev/tools/doc.py,sha256=mv9XfitzqXl3vFHSenv01xHCxWf8g03rUAb_sqoty98,2556
130
133
  omdev/tools/docker.py,sha256=k2BrVvFYwyGov064CPHd_HWo9aqR1zHc2UeEsVwPth4,6827
131
- omdev/tools/git.py,sha256=IARrfL9R9BHpmTBia3svbPeCzf_4qlCCbOsLpohsfUI,4184
134
+ omdev/tools/git.py,sha256=sj3I8chXVzcZQyBIP8trq5_96EOXNTmu5YPOWePkR9A,5995
132
135
  omdev/tools/importscan.py,sha256=QeGjR3UGcuuuDUiisFuAXWHlcKJScGxGEcU6tfOh2CM,4069
133
136
  omdev/tools/mkrelimp.py,sha256=wsJAjTIf3nqcSfnT9TkDpS1VUOoM9W2Az5tZdWuzyLM,4054
134
137
  omdev/tools/notebook.py,sha256=M8Xi_gfZdlahnyFLtp0RBgYZPSHWQStMMDYZc71Zync,3494
@@ -139,9 +142,9 @@ omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
139
142
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
143
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
141
144
  omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
142
- omdev-0.0.0.dev111.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
143
- omdev-0.0.0.dev111.dist-info/METADATA,sha256=HOyNpXt9sec7OSchfUEu_6OgEgCV0gcFeSsrP1vuueM,1810
144
- omdev-0.0.0.dev111.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
145
- omdev-0.0.0.dev111.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
146
- omdev-0.0.0.dev111.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
147
- omdev-0.0.0.dev111.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,,