proj-flow 0.10.0__py3-none-any.whl → 0.11.0__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.
- proj_flow/__init__.py +1 -1
- proj_flow/api/env.py +65 -2
- proj_flow/base/registry.py +9 -3
- proj_flow/ext/cplusplus/cmake/__init__.py +2 -2
- proj_flow/ext/cplusplus/cmake/steps.py +1 -1
- proj_flow/ext/cplusplus/conan/__init__.py +0 -5
- proj_flow/minimal/init.py +1 -1
- proj_flow/project/api.py +3 -3
- proj_flow/project/cplusplus/__init__.py +10 -0
- proj_flow/{ext/cplusplus/cmake/context.py → project/cplusplus/cmake_context.py} +8 -7
- proj_flow/project/cplusplus/conan_context.py +12 -0
- proj_flow/project/{cplusplus.py → cplusplus/project.py} +2 -3
- proj_flow/project/interact.py +45 -25
- {proj_flow-0.10.0.dist-info → proj_flow-0.11.0.dist-info}/METADATA +1 -1
- {proj_flow-0.10.0.dist-info → proj_flow-0.11.0.dist-info}/RECORD +19 -17
- /proj_flow/{ext/cplusplus/cmake/__version__.py → base/__cmake_version__.py} +0 -0
- {proj_flow-0.10.0.dist-info → proj_flow-0.11.0.dist-info}/WHEEL +0 -0
- {proj_flow-0.10.0.dist-info → proj_flow-0.11.0.dist-info}/entry_points.txt +0 -0
- {proj_flow-0.10.0.dist-info → proj_flow-0.11.0.dist-info}/licenses/LICENSE +0 -0
proj_flow/__init__.py
CHANGED
proj_flow/api/env.py
CHANGED
|
@@ -23,6 +23,7 @@ from dataclasses import dataclass
|
|
|
23
23
|
from enum import Enum
|
|
24
24
|
from typing import Any, Callable, Dict, List, Optional, Union, cast
|
|
25
25
|
|
|
26
|
+
from proj_flow.api import ctx
|
|
26
27
|
from proj_flow.base import plugins, uname
|
|
27
28
|
|
|
28
29
|
platform = uname.uname()[0]
|
|
@@ -115,6 +116,59 @@ class RunAlias:
|
|
|
115
116
|
return RunAlias(name, doc, steps)
|
|
116
117
|
|
|
117
118
|
|
|
119
|
+
def _merge_dicts(dst: dict, src: dict):
|
|
120
|
+
for key in src:
|
|
121
|
+
if key not in dst:
|
|
122
|
+
dst[key] = src[key]
|
|
123
|
+
continue
|
|
124
|
+
|
|
125
|
+
src_val = src[key]
|
|
126
|
+
dst_val = dst[key]
|
|
127
|
+
|
|
128
|
+
if isinstance(src_val, dict):
|
|
129
|
+
if isinstance(dst_val, dict):
|
|
130
|
+
_merge_dicts(dst_val, src_val)
|
|
131
|
+
continue
|
|
132
|
+
|
|
133
|
+
dst[key] = src_val
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def _flatten_dict(dst: ctx.SettingsType, defaults: Dict[str, Any], prefix=""):
|
|
137
|
+
for key, val in defaults.items():
|
|
138
|
+
this_key = f"{prefix}{key}"
|
|
139
|
+
|
|
140
|
+
if isinstance(val, dict):
|
|
141
|
+
_flatten_dict(dst, val, f"{this_key}.")
|
|
142
|
+
continue
|
|
143
|
+
|
|
144
|
+
if val is None:
|
|
145
|
+
dst[this_key] = ""
|
|
146
|
+
continue
|
|
147
|
+
|
|
148
|
+
if isinstance(val, bool):
|
|
149
|
+
dst[this_key] = val
|
|
150
|
+
continue
|
|
151
|
+
|
|
152
|
+
dst[this_key] = str(val)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _merge(cfg: dict, defaults: ctx.SettingsType, path: str):
|
|
156
|
+
config = plugins.load_data(path)
|
|
157
|
+
if not isinstance(config, dict):
|
|
158
|
+
return
|
|
159
|
+
|
|
160
|
+
stored_defaults = config.get("defaults", {})
|
|
161
|
+
try:
|
|
162
|
+
del config["defaults"]
|
|
163
|
+
except KeyError:
|
|
164
|
+
pass
|
|
165
|
+
|
|
166
|
+
_merge_dicts(cfg, config)
|
|
167
|
+
|
|
168
|
+
if isinstance(stored_defaults, dict):
|
|
169
|
+
_flatten_dict(defaults, stored_defaults)
|
|
170
|
+
|
|
171
|
+
|
|
118
172
|
class FlowConfig:
|
|
119
173
|
_cfg: dict
|
|
120
174
|
steps: list = []
|
|
@@ -129,9 +183,18 @@ class FlowConfig:
|
|
|
129
183
|
self.root = cfg.root
|
|
130
184
|
else:
|
|
131
185
|
self.root = os.path.abspath(root)
|
|
132
|
-
|
|
133
|
-
|
|
186
|
+
defaults: ctx.SettingsType = {}
|
|
187
|
+
dest: dict = {}
|
|
188
|
+
|
|
189
|
+
_merge(
|
|
190
|
+
dest,
|
|
191
|
+
defaults,
|
|
192
|
+
os.path.join(os.path.expanduser("~"), ".config", "proj-flow.json"),
|
|
134
193
|
)
|
|
194
|
+
_merge(dest, defaults, os.path.join(self.root, ".flow", "config.json"))
|
|
195
|
+
|
|
196
|
+
self._cfg = dest
|
|
197
|
+
self._cfg["defaults"] = defaults
|
|
135
198
|
|
|
136
199
|
self._propagate_compilers()
|
|
137
200
|
self._load_extensions()
|
proj_flow/base/registry.py
CHANGED
|
@@ -98,6 +98,12 @@ class Registry(typing.Generic[T]):
|
|
|
98
98
|
|
|
99
99
|
_debug_copies: typing.List[Registry] = []
|
|
100
100
|
|
|
101
|
+
def quoted(s: str) -> str:
|
|
102
|
+
if '"' in s:
|
|
103
|
+
return "'{}'".format(s.replace("\\", r"\\").replace("'", r"\'"))
|
|
104
|
+
if "'" in s or " " in s:
|
|
105
|
+
return '"{}"'.format(s)
|
|
106
|
+
return s
|
|
101
107
|
|
|
102
108
|
def verbose_info():
|
|
103
109
|
for registry in _debug_copies:
|
|
@@ -107,12 +113,12 @@ def verbose_info():
|
|
|
107
113
|
kw = OrderedDict()
|
|
108
114
|
|
|
109
115
|
if hasattr(item, "name"):
|
|
110
|
-
kw["name"] = getattr(item, "name")
|
|
116
|
+
kw["name"] = quoted(getattr(item, "name"))
|
|
111
117
|
elif hasattr(item, "__name__"):
|
|
112
|
-
kw["name"] = getattr(item, "__name__")
|
|
118
|
+
kw["name"] = quoted(getattr(item, "__name__"))
|
|
113
119
|
|
|
114
120
|
if hasattr(item, "id"):
|
|
115
|
-
kw["id"] = getattr(item, "id")
|
|
121
|
+
kw["id"] = quoted(getattr(item, "id"))
|
|
116
122
|
|
|
117
123
|
items = ", ".join([f"{key}={value}" for key, value in kw.items()])
|
|
118
124
|
if len(items) > 0:
|
|
@@ -7,6 +7,6 @@ The **proj_flow.ext.cplusplus.cmake** provides ``"CMake"``, ``"Build"``,
|
|
|
7
7
|
context.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
from . import
|
|
10
|
+
from . import parser, steps, version
|
|
11
11
|
|
|
12
|
-
__all__ = ["
|
|
12
|
+
__all__ = ["parser", "steps", "version"]
|
proj_flow/minimal/init.py
CHANGED
|
@@ -79,7 +79,7 @@ def main(
|
|
|
79
79
|
print(f"proj-flow: {error}", file=sys.stderr)
|
|
80
80
|
return 1
|
|
81
81
|
|
|
82
|
-
context = current_project.get_context(not non_interactive)
|
|
82
|
+
context = current_project.get_context(not non_interactive, rt)
|
|
83
83
|
if not non_interactive and not rt.silent:
|
|
84
84
|
print()
|
|
85
85
|
|
proj_flow/project/api.py
CHANGED
|
@@ -9,7 +9,7 @@ from abc import ABC, abstractmethod
|
|
|
9
9
|
from typing import Any, List, NamedTuple, Optional
|
|
10
10
|
|
|
11
11
|
from proj_flow import base
|
|
12
|
-
from proj_flow.api import ctx
|
|
12
|
+
from proj_flow.api import ctx, env
|
|
13
13
|
from proj_flow.project import interact
|
|
14
14
|
|
|
15
15
|
|
|
@@ -30,8 +30,8 @@ class ProjectType(ABC):
|
|
|
30
30
|
def register_init_setting(self, *settings: ctx.Setting, is_hidden=False):
|
|
31
31
|
ctx.register_init_setting(*settings, is_hidden=is_hidden, project=self.id)
|
|
32
32
|
|
|
33
|
-
def get_context(self, interactive: bool):
|
|
34
|
-
return interact.get_context(interactive, self.id)
|
|
33
|
+
def get_context(self, interactive: bool, rt: env.Runtime):
|
|
34
|
+
return interact.get_context(interactive, self.id, rt)
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
project_type = base.registry.Registry[ProjectType]("ProjectType")
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Copyright (c) 2025 Marcin Zdun
|
|
2
|
+
# This code is licensed under MIT license (see LICENSE for details)
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
The **proj_flow.project.cplusplus** registers a ``"C++"`` projects support.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from proj_flow.project.cplusplus import cmake_context, conan_context
|
|
9
|
+
|
|
10
|
+
__all__ = ["cmake_context", "conan_context"]
|
|
@@ -12,9 +12,10 @@ import uuid
|
|
|
12
12
|
import chevron
|
|
13
13
|
|
|
14
14
|
from proj_flow import api, project
|
|
15
|
-
from proj_flow.project import
|
|
15
|
+
from proj_flow.project import data
|
|
16
|
+
from proj_flow.project.cplusplus import project
|
|
16
17
|
|
|
17
|
-
from .
|
|
18
|
+
from proj_flow.base.__cmake_version__ import CMAKE_VERSION
|
|
18
19
|
|
|
19
20
|
config_json_mustache = """
|
|
20
21
|
{{#with_cmake}}
|
|
@@ -50,23 +51,23 @@ class CMakeInit(api.init.InitStep):
|
|
|
50
51
|
def _list_cmake_types():
|
|
51
52
|
return api.ctx.move_to_front(
|
|
52
53
|
"console-application",
|
|
53
|
-
sorted(key for key in
|
|
54
|
+
sorted(key for key in data.get_internal("cmake").keys() if key),
|
|
54
55
|
)
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
api.init.register_init_step(CMakeInit())
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
project.cxx.register_init_setting(
|
|
60
61
|
api.ctx.Setting("PROJECT.TYPE", "CMake project type", _list_cmake_types)
|
|
61
62
|
)
|
|
62
|
-
|
|
63
|
+
project.cxx.register_init_setting(
|
|
63
64
|
api.ctx.Setting("cmake", fix="{PROJECT.TYPE$map:cmake}"),
|
|
64
65
|
api.ctx.Setting("CMAKE_VERSION", value=CMAKE_VERSION),
|
|
65
66
|
api.ctx.Setting("PROJECT.WIX.UPGRADE_GUID", value=lambda: str(uuid.uuid4())),
|
|
66
67
|
is_hidden=True,
|
|
67
68
|
)
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
project.cxx.register_switch("with_cmake", "Use CMake", True)
|
|
70
|
+
project.cxx.register_internal(
|
|
70
71
|
"cmake",
|
|
71
72
|
{
|
|
72
73
|
"": {"cmd": "add_executable", "type": ""},
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Copyright (c) 2025 Marcin Zdun
|
|
2
|
+
# This code is licensed under MIT license (see LICENSE for details)
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
The **proj_flow.ext.cplusplus.conan** provides the ``"Conan"`` step.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from proj_flow.project.cplusplus import project
|
|
9
|
+
|
|
10
|
+
project.cxx.register_switch(
|
|
11
|
+
"with_conan", "Use Conan for dependency manager", True
|
|
12
|
+
)
|
|
@@ -7,11 +7,10 @@ The **proj_flow.project.cplusplus** registers a ``"C++"`` projects support.
|
|
|
7
7
|
|
|
8
8
|
from proj_flow.project import api
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
@api.project_type.add
|
|
12
11
|
class CPlusPlus(api.ProjectType):
|
|
13
12
|
def __init__(self):
|
|
14
|
-
super().__init__("C++
|
|
13
|
+
super().__init__("C++ plus CMake plus Conan", "cxx")
|
|
15
14
|
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
cxx = api.get_project_type("cxx")
|
proj_flow/project/interact.py
CHANGED
|
@@ -15,7 +15,7 @@ from prompt_toolkit.formatted_text.base import AnyFormattedText
|
|
|
15
15
|
from prompt_toolkit.shortcuts import CompleteStyle
|
|
16
16
|
from prompt_toolkit.validation import Validator
|
|
17
17
|
|
|
18
|
-
from proj_flow.api import ctx
|
|
18
|
+
from proj_flow.api import ctx, env
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass
|
|
@@ -25,8 +25,18 @@ class _Question:
|
|
|
25
25
|
value: ctx.Values
|
|
26
26
|
|
|
27
27
|
@classmethod
|
|
28
|
-
def load_default(
|
|
28
|
+
def load_default(
|
|
29
|
+
cls,
|
|
30
|
+
default: ctx.Setting,
|
|
31
|
+
previous: ctx.SettingsType,
|
|
32
|
+
override: Optional[ctx.StrOrBool],
|
|
33
|
+
):
|
|
29
34
|
value = default.calc_value(previous)
|
|
35
|
+
if override is not None:
|
|
36
|
+
if isinstance(value, (str, bool)) and type(value) == type(override):
|
|
37
|
+
value = override
|
|
38
|
+
elif isinstance(value, list) and isinstance(override, str):
|
|
39
|
+
value = ctx.move_to_front(override, value)
|
|
30
40
|
return cls(default.json_key, default.prompt, value)
|
|
31
41
|
|
|
32
42
|
def interact(self, counter: int, size: int) -> ctx.StrOrBool:
|
|
@@ -123,7 +133,9 @@ def _project_filter(project: Optional[str]):
|
|
|
123
133
|
return impl
|
|
124
134
|
|
|
125
135
|
|
|
126
|
-
def _prompt(
|
|
136
|
+
def _prompt(
|
|
137
|
+
wanted: Callable[[ctx.Setting], bool], overrides: ctx.SettingsType
|
|
138
|
+
) -> ctx.SettingsType:
|
|
127
139
|
settings: ctx.SettingsType = {}
|
|
128
140
|
|
|
129
141
|
defaults = [setting for setting in ctx.defaults if wanted(setting)]
|
|
@@ -132,22 +144,19 @@ def _prompt(wanted: Callable[[ctx.Setting], bool]) -> ctx.SettingsType:
|
|
|
132
144
|
size = len(defaults) + len(switches)
|
|
133
145
|
counter = 1
|
|
134
146
|
|
|
135
|
-
for
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
value = loaded.interact(counter, size)
|
|
144
|
-
settings[loaded.key] = value
|
|
145
|
-
counter += 1
|
|
147
|
+
for coll in [defaults, switches]:
|
|
148
|
+
for setting in coll:
|
|
149
|
+
loaded = _Question.load_default(
|
|
150
|
+
setting, settings, overrides.get(setting.json_key)
|
|
151
|
+
)
|
|
152
|
+
value = loaded.interact(counter, size)
|
|
153
|
+
settings[loaded.key] = value
|
|
154
|
+
counter += 1
|
|
146
155
|
|
|
147
156
|
return settings
|
|
148
157
|
|
|
149
158
|
|
|
150
|
-
def _all_default(wanted: Callable[[ctx.Setting], bool]):
|
|
159
|
+
def _all_default(wanted: Callable[[ctx.Setting], bool], overrides: ctx.SettingsType):
|
|
151
160
|
"""
|
|
152
161
|
Chooses default answers for all details of newly-crated project.
|
|
153
162
|
|
|
@@ -160,13 +169,13 @@ def _all_default(wanted: Callable[[ctx.Setting], bool]):
|
|
|
160
169
|
defaults = [setting for setting in ctx.defaults if wanted(setting)]
|
|
161
170
|
switches = [setting for setting in ctx.switches if wanted(setting)]
|
|
162
171
|
|
|
163
|
-
for
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
172
|
+
for coll in [defaults, switches]:
|
|
173
|
+
for setting in coll:
|
|
174
|
+
if setting.json_key in overrides:
|
|
175
|
+
settings[setting.json_key] = overrides[setting.json_key]
|
|
176
|
+
else:
|
|
177
|
+
value = _get_default(setting, settings)
|
|
178
|
+
settings[setting.json_key] = value
|
|
170
179
|
|
|
171
180
|
return settings
|
|
172
181
|
|
|
@@ -217,19 +226,30 @@ def _fixup_context(settings: ctx.SettingsType, wanted: Callable[[ctx.Setting], b
|
|
|
217
226
|
return result
|
|
218
227
|
|
|
219
228
|
|
|
220
|
-
def get_context(interactive: bool, project: Optional[str]):
|
|
229
|
+
def get_context(interactive: bool, project: Optional[str], rt: env.Runtime):
|
|
221
230
|
"""
|
|
222
231
|
Prompts user to provide details of newly-crated project. If `interactive`
|
|
223
232
|
is true, however, this functions skips the prompts and chooses all the
|
|
224
233
|
default answers.
|
|
225
234
|
|
|
226
235
|
:param interactive: Selects, if the initialization process is done through
|
|
227
|
-
prompts, or not
|
|
236
|
+
prompts, or not.
|
|
237
|
+
|
|
238
|
+
:param project: Alows to select questions for any given language.
|
|
239
|
+
|
|
240
|
+
:param rt: Runtime with config loaded in.
|
|
228
241
|
|
|
229
242
|
:returns: Dictionary with answers to all interactive settings and switches.
|
|
230
243
|
"""
|
|
231
244
|
|
|
245
|
+
overrides = rt._cfg.get("defaults", {})
|
|
246
|
+
|
|
232
247
|
wanted = _project_filter(project)
|
|
233
248
|
return _fixup_context(
|
|
234
|
-
|
|
249
|
+
(
|
|
250
|
+
_all_default(wanted, overrides)
|
|
251
|
+
if not interactive
|
|
252
|
+
else _prompt(wanted, overrides)
|
|
253
|
+
),
|
|
254
|
+
wanted,
|
|
235
255
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: proj-flow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: C++ project maintenance, automated
|
|
5
5
|
Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
|
|
6
6
|
Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
proj_flow/__init__.py,sha256=
|
|
1
|
+
proj_flow/__init__.py,sha256=rJnUcfKn1M3oCrkLIpU66A5IZYuXAN9puzWG3l2KM7s,277
|
|
2
2
|
proj_flow/__main__.py,sha256=HUar_qQ9Ndmchmryegtzu__5wukwCLrFN_SGRl5Ol_M,233
|
|
3
3
|
proj_flow/dependency.py,sha256=CpcnR6El8AO9hlLc9lQtYQADYlkx3GMHlkLYbEAtdMI,4639
|
|
4
4
|
proj_flow/api/__init__.py,sha256=gV2f6kll_5JXtvkGASvnx7CbOWr34PHOdck-4ce-qEk,378
|
|
5
5
|
proj_flow/api/arg.py,sha256=id08mLFVDWIvsrhEaPuJfng27f92Vf8pIA5VajyjGVo,4802
|
|
6
6
|
proj_flow/api/completers.py,sha256=NapNVu6QAQ_iF6dqcAzOV5kDHKD9MAMVX209Bklq-Mw,2464
|
|
7
7
|
proj_flow/api/ctx.py,sha256=IJu0q0Chivo6b2M4MKkAlV09oi7Cn9VxtDFeAeL_tnc,6646
|
|
8
|
-
proj_flow/api/env.py,sha256=
|
|
8
|
+
proj_flow/api/env.py,sha256=VOJbyyMQydPLV4-xQ9ylxwhkvJ8EhZro1GOYPfUSnCU,12629
|
|
9
9
|
proj_flow/api/init.py,sha256=an0czDiPCDqW4Bp0I8sGQgaAlDAozLO0ZYnP149lWqk,521
|
|
10
10
|
proj_flow/api/makefile.py,sha256=AxtGOvmypBtSvoyMEDJq1bGoaVD5yW9YYRZSdunUEeg,3856
|
|
11
11
|
proj_flow/api/release.py,sha256=A-t4qcjeaptEgfBCZs2Q9cOjsGACrNM0CzmCorms0U4,2401
|
|
12
12
|
proj_flow/api/step.py,sha256=AOqe1wXYnU_O3pD5KlzfyyOm_D9fcF_4vyhhr1w-NrI,4561
|
|
13
|
+
proj_flow/base/__cmake_version__.py,sha256=imja0GnhpBvS8Crz-64eOUKhc4i6FeRrjBGRB68x_p0,239
|
|
13
14
|
proj_flow/base/__init__.py,sha256=RRmqiYjdVlC4i8QijXHNiRh9yzNH8305WXezrSaPjKk,311
|
|
14
15
|
proj_flow/base/cmd.py,sha256=Vo3e8kd4CHRzbsUkO-MnbhQxjLXTczv7YQRUkFlcBQE,1560
|
|
15
16
|
proj_flow/base/inspect.py,sha256=lt5P19rvSZ-wMCTrCYAaQFCt2S9fUjEQXlrKK-Tmvwc,2786
|
|
16
17
|
proj_flow/base/matrix.py,sha256=8XBFGYOwW6Myt_4h3WNk36V2bJ5xeqUv6DvzF4B3q_g,7767
|
|
17
18
|
proj_flow/base/name_list.py,sha256=KiHSnbDgYplJc25O3EehYhFAhD7Z3mHVAK6UYOdg5PQ,416
|
|
18
19
|
proj_flow/base/plugins.py,sha256=evn2Dym_NeoBaIZAu2YUtRd--15PCFpHD0h5zSsWkQE,978
|
|
19
|
-
proj_flow/base/registry.py,sha256=
|
|
20
|
+
proj_flow/base/registry.py,sha256=JJJONiBwpPvOvwh-Omrsc0OfhDC_88wC9HUJTN9udww,3743
|
|
20
21
|
proj_flow/base/uname.py,sha256=7Awb3Es0jTAKMpyRawdrC16xc5X9M97BlPqEfQibqIk,2295
|
|
21
22
|
proj_flow/cli/__init__.py,sha256=cMsZpECkXeSzY4Hv_ela3Ou-FhwE5w1A3ypMSnZZikM,1196
|
|
22
23
|
proj_flow/cli/argument.py,sha256=OCx_Z0NVm4bmHI30WFdtPdqVMdDnvkqqluhAgP7Ya0w,13686
|
|
@@ -26,13 +27,11 @@ proj_flow/ext/markdown_changelog.py,sha256=fRGL09jojnv2B-8vAX2prvgNp8e7uyq5NxboS
|
|
|
26
27
|
proj_flow/ext/re_structured_changelog.py,sha256=UF23W9eu_YgPO42MiaoDbEKu8In_48mQg6rH9--mI30,459
|
|
27
28
|
proj_flow/ext/store.py,sha256=yfyIb2G7UhoIkPmVDnp1RPx2fwFZK8FyLZzrMvPlEUM,3681
|
|
28
29
|
proj_flow/ext/cplusplus/__init__.py,sha256=dAmLMyGVQq586jJM_jiAuo5Ecw9U8agpvSRbzzPgh3g,245
|
|
29
|
-
proj_flow/ext/cplusplus/cmake/__init__.py,sha256=
|
|
30
|
-
proj_flow/ext/cplusplus/cmake/__version__.py,sha256=imja0GnhpBvS8Crz-64eOUKhc4i6FeRrjBGRB68x_p0,239
|
|
31
|
-
proj_flow/ext/cplusplus/cmake/context.py,sha256=BJDMRuIvCEXR577yWuYSw-wzQ9PQudpXjnIxo1gKHBU,3172
|
|
30
|
+
proj_flow/ext/cplusplus/cmake/__init__.py,sha256=QRD9qEzIhOuzwyjOFdOWUFiwwGTctss5y6Eam3RzeVc,346
|
|
32
31
|
proj_flow/ext/cplusplus/cmake/parser.py,sha256=ZqQRZqS_VU5VtC8uwax-dknh7sfuLEvtazG8ChSqHDQ,3814
|
|
33
|
-
proj_flow/ext/cplusplus/cmake/steps.py,sha256=
|
|
32
|
+
proj_flow/ext/cplusplus/cmake/steps.py,sha256=sYrx7R96HFxo7wzX1n53pthwWMdQFOBSb3tkL9JHneY,4120
|
|
34
33
|
proj_flow/ext/cplusplus/cmake/version.py,sha256=E0PAUdO9Wg02pxtU4LWYTNoTB-9Oer3Y9zr1lR2zvgw,962
|
|
35
|
-
proj_flow/ext/cplusplus/conan/__init__.py,sha256=
|
|
34
|
+
proj_flow/ext/cplusplus/conan/__init__.py,sha256=Fv839SWsKPWMZs9ox9T-bofZ4xDJXOI5UfWKQkm0Vtg,1924
|
|
36
35
|
proj_flow/ext/cplusplus/conan/_conan.py,sha256=9xnji-f8uN7huXLqavVBUDC33CgnjBIyZX6wVcGm2RA,3352
|
|
37
36
|
proj_flow/ext/github/__init__.py,sha256=Mgx19YS6SYBXYB66_pOgIgwuB2WKRxqp5UGutq0B9Xk,282
|
|
38
37
|
proj_flow/ext/github/cli.py,sha256=zQS2TB7fDeY0VwR1bOw065Trz2NPe07JKcFQaJbwKGg,3934
|
|
@@ -65,15 +64,18 @@ proj_flow/log/rich_text/re_structured_text.py,sha256=DEl9KjBUF6cxfNWpQ7GVnHi7wKe
|
|
|
65
64
|
proj_flow/minimal/__init__.py,sha256=NglaSdKiMebrOqfsqF9ctqi0ZwiiBHOQcUnp3DS8lP0,340
|
|
66
65
|
proj_flow/minimal/base.py,sha256=yJR3FAigR_x8krTQ1UeifBb4AnLUZAk6LfVVqB_RFO4,758
|
|
67
66
|
proj_flow/minimal/bootstrap.py,sha256=PcZfBsUmj8uDPGBC55iUgD5O7W4VSkpCQb6r9GEyAaQ,556
|
|
68
|
-
proj_flow/minimal/init.py,sha256=
|
|
67
|
+
proj_flow/minimal/init.py,sha256=kJ4flv_W6ZHMVOEDwDbeURlOXS3O2AjGobGzKIbHxZE,2949
|
|
69
68
|
proj_flow/minimal/list.py,sha256=RlOqammE8olNKXsnbv1enF5uriu0MZ2wFbht37Z2ETw,4810
|
|
70
69
|
proj_flow/minimal/run.py,sha256=4qvGLqz2ayCZDvVBrq4tG094fjfcmDPon-xcGPQkM_U,4665
|
|
71
70
|
proj_flow/minimal/system.py,sha256=9FliH5TD103JYSAe2O5EU7hkOHDgVzTqu0Exxk-WrXE,1579
|
|
72
71
|
proj_flow/project/__init__.py,sha256=AROrwhbuMR5rJE-HC769eL4IXrMLQYpQb3HgpkOAYqg,293
|
|
73
|
-
proj_flow/project/api.py,sha256
|
|
74
|
-
proj_flow/project/cplusplus.py,sha256=GXHXI4cdrSm0jWTr2g9dCBgeFS1G4g2fC9WCv6ILn0c,398
|
|
72
|
+
proj_flow/project/api.py,sha256=-B9Oj_7Z8hQvfgs32XU-S0nw9y8hFSkO71hx-JUHs7Q,1384
|
|
75
73
|
proj_flow/project/data.py,sha256=TluhBDoJEYL4dnyTpInmhQ49Uvf8mkWmpU-YMLQPNhE,317
|
|
76
|
-
proj_flow/project/interact.py,sha256=
|
|
74
|
+
proj_flow/project/interact.py,sha256=Abb6Jt88pCebJMkKLGCF3RQLM-Q9D8Yk92GarZ27e9E,7909
|
|
75
|
+
proj_flow/project/cplusplus/__init__.py,sha256=rEKuxAVMpkTTM01Upv3VUtkSiVIpXDAux-7FreWsF2k,301
|
|
76
|
+
proj_flow/project/cplusplus/cmake_context.py,sha256=HZTJ4D_EYHCZGfrSXUHtX2fPzbPp2jON5OCHRSyLPgk,3203
|
|
77
|
+
proj_flow/project/cplusplus/conan_context.py,sha256=iXKATfS56R8AgO3g02M15CqcAkvNeO4gBahWSLHo8Dg,319
|
|
78
|
+
proj_flow/project/cplusplus/project.py,sha256=gLvymc5bhXsjgBRm0u-oddXjbVHmwf6aIpHnqVAd9nc,399
|
|
77
79
|
proj_flow/template/layers/base.json,sha256=jrlby8FUUwkx4V_EGMix_pkQlWcUCVUgmeoapZaZnt4,3
|
|
78
80
|
proj_flow/template/layers/cmake.json,sha256=KJe9uqTDoGm0ppdNOtniKEv30iNV2K4Yk8hZQetEZ7Y,385
|
|
79
81
|
proj_flow/template/layers/conan.json,sha256=mAhDrxCtDjI_7Rbtr2hlNW5_jZkLdWLiwgfuhRsRuuw,29
|
|
@@ -128,8 +130,8 @@ proj_flow/template/licenses/MIT.mustache,sha256=NncPoQaNsuy-WmRmboik3fyhJJ8m5pc2
|
|
|
128
130
|
proj_flow/template/licenses/Unlicense.mustache,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
|
|
129
131
|
proj_flow/template/licenses/WTFPL.mustache,sha256=lvF4V_PrKKfZPa2TC8CZo8tlqaKvs3Bpv9G6XsWWQ4k,483
|
|
130
132
|
proj_flow/template/licenses/Zlib.mustache,sha256=uIj-mhSjes2HJ3rRapyy2ALflKRz4xQgS4mVM9827C0,868
|
|
131
|
-
proj_flow-0.
|
|
132
|
-
proj_flow-0.
|
|
133
|
-
proj_flow-0.
|
|
134
|
-
proj_flow-0.
|
|
135
|
-
proj_flow-0.
|
|
133
|
+
proj_flow-0.11.0.dist-info/METADATA,sha256=x-Enl_zQtntZR9HXEwP7m-jaR86E6orA5ofhbaWXudc,2868
|
|
134
|
+
proj_flow-0.11.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
135
|
+
proj_flow-0.11.0.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
|
|
136
|
+
proj_flow-0.11.0.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
|
|
137
|
+
proj_flow-0.11.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|