casbin-async-django-orm-adapter 1.0.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.
- async_casbin_adapter/__init__.py +0 -0
- async_casbin_adapter/adapter.py +100 -0
- async_casbin_adapter/apps.py +24 -0
- async_casbin_adapter/enforcer.py +81 -0
- async_casbin_adapter/migrations/0001_initial.py +37 -0
- async_casbin_adapter/migrations/__init__.py +0 -0
- async_casbin_adapter/models.py +48 -0
- async_casbin_adapter/utils.py +25 -0
- casbin_async_django_orm_adapter-1.0.0.dist-info/METADATA +116 -0
- casbin_async_django_orm_adapter-1.0.0.dist-info/RECORD +74 -0
- casbin_async_django_orm_adapter-1.0.0.dist-info/WHEEL +5 -0
- casbin_async_django_orm_adapter-1.0.0.dist-info/licenses/LICENSE +201 -0
- casbin_async_django_orm_adapter-1.0.0.dist-info/top_level.txt +3 -0
- node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py +45 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +365 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +206 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +1272 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +1547 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +59 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +152 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +270 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +574 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +704 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py +709 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +173 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +169 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +113 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +55 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +805 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +1172 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +1319 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +128 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +104 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +462 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +89 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +56 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +2745 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +3976 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +44 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2965 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +67 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +1391 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +26 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +3112 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +99 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +767 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1260 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +174 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +61 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +373 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +1939 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +54 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +303 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +3196 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +65 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +15 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +108 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +252 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +83 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +359 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +61 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +192 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/markers.py +252 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +825 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +90 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +1030 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/tags.py +553 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/utils.py +172 -0
- node_modules/npm/node_modules/node-gyp/gyp/pylib/packaging/version.py +563 -0
- node_modules/npm/node_modules/node-gyp/gyp/test_gyp.py +261 -0
- node_modules/semantic-release-pypi/dist/py/set_version.py +32 -0
- node_modules/semantic-release-pypi/dist/py/verify_setup.py +24 -0
@@ -0,0 +1,261 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
# Copyright (c) 2012 Google Inc. All rights reserved.
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
4
|
+
# found in the LICENSE file.
|
5
|
+
|
6
|
+
"""gyptest.py -- test runner for GYP tests."""
|
7
|
+
|
8
|
+
|
9
|
+
import argparse
|
10
|
+
import os
|
11
|
+
import platform
|
12
|
+
import subprocess
|
13
|
+
import sys
|
14
|
+
import time
|
15
|
+
|
16
|
+
|
17
|
+
def is_test_name(f):
|
18
|
+
return f.startswith("gyptest") and f.endswith(".py")
|
19
|
+
|
20
|
+
|
21
|
+
def find_all_gyptest_files(directory):
|
22
|
+
result = []
|
23
|
+
for root, dirs, files in os.walk(directory):
|
24
|
+
result.extend([os.path.join(root, f) for f in files if is_test_name(f)])
|
25
|
+
result.sort()
|
26
|
+
return result
|
27
|
+
|
28
|
+
|
29
|
+
def main(argv=None):
|
30
|
+
if argv is None:
|
31
|
+
argv = sys.argv
|
32
|
+
|
33
|
+
parser = argparse.ArgumentParser()
|
34
|
+
parser.add_argument("-a", "--all", action="store_true", help="run all tests")
|
35
|
+
parser.add_argument("-C", "--chdir", action="store", help="change to directory")
|
36
|
+
parser.add_argument(
|
37
|
+
"-f",
|
38
|
+
"--format",
|
39
|
+
action="store",
|
40
|
+
default="",
|
41
|
+
help="run tests with the specified formats",
|
42
|
+
)
|
43
|
+
parser.add_argument(
|
44
|
+
"-G",
|
45
|
+
"--gyp_option",
|
46
|
+
action="append",
|
47
|
+
default=[],
|
48
|
+
help="Add -G options to the gyp command line",
|
49
|
+
)
|
50
|
+
parser.add_argument(
|
51
|
+
"-l", "--list", action="store_true", help="list available tests and exit"
|
52
|
+
)
|
53
|
+
parser.add_argument(
|
54
|
+
"-n",
|
55
|
+
"--no-exec",
|
56
|
+
action="store_true",
|
57
|
+
help="no execute, just print the command line",
|
58
|
+
)
|
59
|
+
parser.add_argument(
|
60
|
+
"--path", action="append", default=[], help="additional $PATH directory"
|
61
|
+
)
|
62
|
+
parser.add_argument(
|
63
|
+
"-q",
|
64
|
+
"--quiet",
|
65
|
+
action="store_true",
|
66
|
+
help="quiet, don't print anything unless there are failures",
|
67
|
+
)
|
68
|
+
parser.add_argument(
|
69
|
+
"-v",
|
70
|
+
"--verbose",
|
71
|
+
action="store_true",
|
72
|
+
help="print configuration info and test results.",
|
73
|
+
)
|
74
|
+
parser.add_argument("tests", nargs="*")
|
75
|
+
args = parser.parse_args(argv[1:])
|
76
|
+
|
77
|
+
if args.chdir:
|
78
|
+
os.chdir(args.chdir)
|
79
|
+
|
80
|
+
if args.path:
|
81
|
+
extra_path = [os.path.abspath(p) for p in args.path]
|
82
|
+
extra_path = os.pathsep.join(extra_path)
|
83
|
+
os.environ["PATH"] = extra_path + os.pathsep + os.environ["PATH"]
|
84
|
+
|
85
|
+
if not args.tests:
|
86
|
+
if not args.all:
|
87
|
+
sys.stderr.write("Specify -a to get all tests.\n")
|
88
|
+
return 1
|
89
|
+
args.tests = ["test"]
|
90
|
+
|
91
|
+
tests = []
|
92
|
+
for arg in args.tests:
|
93
|
+
if os.path.isdir(arg):
|
94
|
+
tests.extend(find_all_gyptest_files(os.path.normpath(arg)))
|
95
|
+
else:
|
96
|
+
if not is_test_name(os.path.basename(arg)):
|
97
|
+
print(arg, "is not a valid gyp test name.", file=sys.stderr)
|
98
|
+
sys.exit(1)
|
99
|
+
tests.append(arg)
|
100
|
+
|
101
|
+
if args.list:
|
102
|
+
for test in tests:
|
103
|
+
print(test)
|
104
|
+
sys.exit(0)
|
105
|
+
|
106
|
+
os.environ["PYTHONPATH"] = os.path.abspath("test/lib")
|
107
|
+
|
108
|
+
if args.verbose:
|
109
|
+
print_configuration_info()
|
110
|
+
|
111
|
+
if args.gyp_option and not args.quiet:
|
112
|
+
print("Extra Gyp options: %s\n" % args.gyp_option)
|
113
|
+
|
114
|
+
if args.format:
|
115
|
+
format_list = args.format.split(",")
|
116
|
+
else:
|
117
|
+
format_list = {
|
118
|
+
"aix5": ["make"],
|
119
|
+
"os400": ["make"],
|
120
|
+
"freebsd7": ["make"],
|
121
|
+
"freebsd8": ["make"],
|
122
|
+
"openbsd5": ["make"],
|
123
|
+
"cygwin": ["msvs"],
|
124
|
+
"win32": ["msvs", "ninja"],
|
125
|
+
"linux": ["make", "ninja"],
|
126
|
+
"linux2": ["make", "ninja"],
|
127
|
+
"linux3": ["make", "ninja"],
|
128
|
+
# TODO: Re-enable xcode-ninja.
|
129
|
+
# https://bugs.chromium.org/p/gyp/issues/detail?id=530
|
130
|
+
# 'darwin': ['make', 'ninja', 'xcode', 'xcode-ninja'],
|
131
|
+
"darwin": ["make", "ninja", "xcode"],
|
132
|
+
}[sys.platform]
|
133
|
+
|
134
|
+
gyp_options = []
|
135
|
+
for option in args.gyp_option:
|
136
|
+
gyp_options += ["-G", option]
|
137
|
+
|
138
|
+
runner = Runner(format_list, tests, gyp_options, args.verbose)
|
139
|
+
runner.run()
|
140
|
+
|
141
|
+
if not args.quiet:
|
142
|
+
runner.print_results()
|
143
|
+
|
144
|
+
return 1 if runner.failures else 0
|
145
|
+
|
146
|
+
|
147
|
+
def print_configuration_info():
|
148
|
+
print("Test configuration:")
|
149
|
+
if sys.platform == "darwin":
|
150
|
+
sys.path.append(os.path.abspath("test/lib"))
|
151
|
+
import TestMac
|
152
|
+
|
153
|
+
print(f" Mac {platform.mac_ver()[0]} {platform.mac_ver()[2]}")
|
154
|
+
print(f" Xcode {TestMac.Xcode.Version()}")
|
155
|
+
elif sys.platform == "win32":
|
156
|
+
sys.path.append(os.path.abspath("pylib"))
|
157
|
+
import gyp.MSVSVersion
|
158
|
+
|
159
|
+
print(" Win %s %s\n" % platform.win32_ver()[0:2])
|
160
|
+
print(" MSVS %s" % gyp.MSVSVersion.SelectVisualStudioVersion().Description())
|
161
|
+
elif sys.platform in ("linux", "linux2"):
|
162
|
+
print(" Linux %s" % " ".join(platform.linux_distribution()))
|
163
|
+
print(f" Python {platform.python_version()}")
|
164
|
+
print(f" PYTHONPATH={os.environ['PYTHONPATH']}")
|
165
|
+
print()
|
166
|
+
|
167
|
+
|
168
|
+
class Runner:
|
169
|
+
def __init__(self, formats, tests, gyp_options, verbose):
|
170
|
+
self.formats = formats
|
171
|
+
self.tests = tests
|
172
|
+
self.verbose = verbose
|
173
|
+
self.gyp_options = gyp_options
|
174
|
+
self.failures = []
|
175
|
+
self.num_tests = len(formats) * len(tests)
|
176
|
+
num_digits = len(str(self.num_tests))
|
177
|
+
self.fmt_str = "[%%%dd/%%%dd] (%%s) %%s" % (num_digits, num_digits)
|
178
|
+
self.isatty = sys.stdout.isatty() and not self.verbose
|
179
|
+
self.env = os.environ.copy()
|
180
|
+
self.hpos = 0
|
181
|
+
|
182
|
+
def run(self):
|
183
|
+
run_start = time.time()
|
184
|
+
|
185
|
+
i = 1
|
186
|
+
for fmt in self.formats:
|
187
|
+
for test in self.tests:
|
188
|
+
self.run_test(test, fmt, i)
|
189
|
+
i += 1
|
190
|
+
|
191
|
+
if self.isatty:
|
192
|
+
self.erase_current_line()
|
193
|
+
|
194
|
+
self.took = time.time() - run_start
|
195
|
+
|
196
|
+
def run_test(self, test, fmt, i):
|
197
|
+
if self.isatty:
|
198
|
+
self.erase_current_line()
|
199
|
+
|
200
|
+
msg = self.fmt_str % (i, self.num_tests, fmt, test)
|
201
|
+
self.print_(msg)
|
202
|
+
|
203
|
+
start = time.time()
|
204
|
+
cmd = [sys.executable, test] + self.gyp_options
|
205
|
+
self.env["TESTGYP_FORMAT"] = fmt
|
206
|
+
proc = subprocess.Popen(
|
207
|
+
cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=self.env
|
208
|
+
)
|
209
|
+
proc.wait()
|
210
|
+
took = time.time() - start
|
211
|
+
|
212
|
+
stdout = proc.stdout.read().decode("utf8")
|
213
|
+
if proc.returncode == 2:
|
214
|
+
res = "skipped"
|
215
|
+
elif proc.returncode:
|
216
|
+
res = "failed"
|
217
|
+
self.failures.append(f"({test}) {fmt}")
|
218
|
+
else:
|
219
|
+
res = "passed"
|
220
|
+
res_msg = f" {res} {took:.3f}s"
|
221
|
+
self.print_(res_msg)
|
222
|
+
|
223
|
+
if stdout and not stdout.endswith(("PASSED\n", "NO RESULT\n")):
|
224
|
+
print()
|
225
|
+
print("\n".join(f" {line}" for line in stdout.splitlines()))
|
226
|
+
elif not self.isatty:
|
227
|
+
print()
|
228
|
+
|
229
|
+
def print_(self, msg):
|
230
|
+
print(msg, end="")
|
231
|
+
index = msg.rfind("\n")
|
232
|
+
if index == -1:
|
233
|
+
self.hpos += len(msg)
|
234
|
+
else:
|
235
|
+
self.hpos = len(msg) - index
|
236
|
+
sys.stdout.flush()
|
237
|
+
|
238
|
+
def erase_current_line(self):
|
239
|
+
print("\b" * self.hpos + " " * self.hpos + "\b" * self.hpos, end="")
|
240
|
+
sys.stdout.flush()
|
241
|
+
self.hpos = 0
|
242
|
+
|
243
|
+
def print_results(self):
|
244
|
+
num_failures = len(self.failures)
|
245
|
+
if num_failures:
|
246
|
+
print()
|
247
|
+
if num_failures == 1:
|
248
|
+
print("Failed the following test:")
|
249
|
+
else:
|
250
|
+
print("Failed the following %d tests:" % num_failures)
|
251
|
+
print("\t" + "\n\t".join(sorted(self.failures)))
|
252
|
+
print()
|
253
|
+
print(
|
254
|
+
"Ran %d tests in %.3fs, %d failed."
|
255
|
+
% (self.num_tests, self.took, num_failures)
|
256
|
+
)
|
257
|
+
print()
|
258
|
+
|
259
|
+
|
260
|
+
if __name__ == "__main__":
|
261
|
+
sys.exit(main())
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import argparse
|
2
|
+
import os
|
3
|
+
|
4
|
+
from tomlkit import dumps, parse
|
5
|
+
|
6
|
+
parser = argparse.ArgumentParser(description='Set version in pyproject.toml')
|
7
|
+
parser.add_argument('srcdir', type=str, help="source directory")
|
8
|
+
parser.add_argument('-v', '--version', type=str, default="1.0.0", help="version")
|
9
|
+
args = parser.parse_args()
|
10
|
+
|
11
|
+
pyproject_path = os.path.join(args.srcdir, 'pyproject.toml')
|
12
|
+
|
13
|
+
# read file
|
14
|
+
file = open(pyproject_path, "r")
|
15
|
+
pyproject = file.read()
|
16
|
+
file.close()
|
17
|
+
|
18
|
+
# modifiy version (tomlkit will preserve comments)
|
19
|
+
toml = parse(pyproject)
|
20
|
+
if 'tool' in toml and 'poetry' in toml['tool'] and "version" in toml["tool"]["poetry"]:
|
21
|
+
print('Poetry package detected')
|
22
|
+
toml['tool']['poetry']['version'] = args.version
|
23
|
+
else:
|
24
|
+
toml['project']['version'] = args.version
|
25
|
+
print(f'Set version to {args.version} ({pyproject_path})')
|
26
|
+
pyproject = dumps(toml)
|
27
|
+
|
28
|
+
# write file
|
29
|
+
file = open(pyproject_path,"w")
|
30
|
+
file.write(pyproject)
|
31
|
+
file.close()
|
32
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import argparse
|
2
|
+
import importlib
|
3
|
+
import os
|
4
|
+
import sys
|
5
|
+
from unittest.mock import Mock
|
6
|
+
|
7
|
+
import setuptools
|
8
|
+
|
9
|
+
parser = argparse.ArgumentParser(description='Check if version is set inside setup.py')
|
10
|
+
parser.add_argument('setup_path', type=str, default="./setup.py", help="path of setup.py")
|
11
|
+
args = parser.parse_args()
|
12
|
+
|
13
|
+
sys.path.insert(0, os.path.dirname(args.setup_path))
|
14
|
+
|
15
|
+
mock = Mock()
|
16
|
+
setuptools.setup = mock
|
17
|
+
|
18
|
+
#import setup
|
19
|
+
importlib.import_module(os.path.splitext(os.path.basename(args.setup_path))[0])
|
20
|
+
|
21
|
+
if mock.call_args is not None and 'version' in mock.call_args[1]:
|
22
|
+
sys.exit(f"version in {args.setup_path}")
|
23
|
+
|
24
|
+
sys.exit(0)
|