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,206 @@
|
|
1
|
+
# Copyright (c) 2012 Google Inc. All rights reserved.
|
2
|
+
# Use of this source code is governed by a BSD-style license that can be
|
3
|
+
# found in the LICENSE file.
|
4
|
+
|
5
|
+
"""Visual Studio project reader/writer."""
|
6
|
+
|
7
|
+
from gyp import easy_xml
|
8
|
+
|
9
|
+
# ------------------------------------------------------------------------------
|
10
|
+
|
11
|
+
|
12
|
+
class Tool:
|
13
|
+
"""Visual Studio tool."""
|
14
|
+
|
15
|
+
def __init__(self, name, attrs=None):
|
16
|
+
"""Initializes the tool.
|
17
|
+
|
18
|
+
Args:
|
19
|
+
name: Tool name.
|
20
|
+
attrs: Dict of tool attributes; may be None.
|
21
|
+
"""
|
22
|
+
self._attrs = attrs or {}
|
23
|
+
self._attrs["Name"] = name
|
24
|
+
|
25
|
+
def _GetSpecification(self):
|
26
|
+
"""Creates an element for the tool.
|
27
|
+
|
28
|
+
Returns:
|
29
|
+
A new xml.dom.Element for the tool.
|
30
|
+
"""
|
31
|
+
return ["Tool", self._attrs]
|
32
|
+
|
33
|
+
|
34
|
+
class Filter:
|
35
|
+
"""Visual Studio filter - that is, a virtual folder."""
|
36
|
+
|
37
|
+
def __init__(self, name, contents=None):
|
38
|
+
"""Initializes the folder.
|
39
|
+
|
40
|
+
Args:
|
41
|
+
name: Filter (folder) name.
|
42
|
+
contents: List of filenames and/or Filter objects contained.
|
43
|
+
"""
|
44
|
+
self.name = name
|
45
|
+
self.contents = list(contents or [])
|
46
|
+
|
47
|
+
|
48
|
+
# ------------------------------------------------------------------------------
|
49
|
+
|
50
|
+
|
51
|
+
class Writer:
|
52
|
+
"""Visual Studio XML project writer."""
|
53
|
+
|
54
|
+
def __init__(self, project_path, version, name, guid=None, platforms=None):
|
55
|
+
"""Initializes the project.
|
56
|
+
|
57
|
+
Args:
|
58
|
+
project_path: Path to the project file.
|
59
|
+
version: Format version to emit.
|
60
|
+
name: Name of the project.
|
61
|
+
guid: GUID to use for project, if not None.
|
62
|
+
platforms: Array of string, the supported platforms. If null, ['Win32']
|
63
|
+
"""
|
64
|
+
self.project_path = project_path
|
65
|
+
self.version = version
|
66
|
+
self.name = name
|
67
|
+
self.guid = guid
|
68
|
+
|
69
|
+
# Default to Win32 for platforms.
|
70
|
+
if not platforms:
|
71
|
+
platforms = ["Win32"]
|
72
|
+
|
73
|
+
# Initialize the specifications of the various sections.
|
74
|
+
self.platform_section = ["Platforms"]
|
75
|
+
for platform in platforms:
|
76
|
+
self.platform_section.append(["Platform", {"Name": platform}])
|
77
|
+
self.tool_files_section = ["ToolFiles"]
|
78
|
+
self.configurations_section = ["Configurations"]
|
79
|
+
self.files_section = ["Files"]
|
80
|
+
|
81
|
+
# Keep a dict keyed on filename to speed up access.
|
82
|
+
self.files_dict = {}
|
83
|
+
|
84
|
+
def AddToolFile(self, path):
|
85
|
+
"""Adds a tool file to the project.
|
86
|
+
|
87
|
+
Args:
|
88
|
+
path: Relative path from project to tool file.
|
89
|
+
"""
|
90
|
+
self.tool_files_section.append(["ToolFile", {"RelativePath": path}])
|
91
|
+
|
92
|
+
def _GetSpecForConfiguration(self, config_type, config_name, attrs, tools):
|
93
|
+
"""Returns the specification for a configuration.
|
94
|
+
|
95
|
+
Args:
|
96
|
+
config_type: Type of configuration node.
|
97
|
+
config_name: Configuration name.
|
98
|
+
attrs: Dict of configuration attributes; may be None.
|
99
|
+
tools: List of tools (strings or Tool objects); may be None.
|
100
|
+
Returns:
|
101
|
+
"""
|
102
|
+
# Handle defaults
|
103
|
+
if not attrs:
|
104
|
+
attrs = {}
|
105
|
+
if not tools:
|
106
|
+
tools = []
|
107
|
+
|
108
|
+
# Add configuration node and its attributes
|
109
|
+
node_attrs = attrs.copy()
|
110
|
+
node_attrs["Name"] = config_name
|
111
|
+
specification = [config_type, node_attrs]
|
112
|
+
|
113
|
+
# Add tool nodes and their attributes
|
114
|
+
if tools:
|
115
|
+
for t in tools:
|
116
|
+
if isinstance(t, Tool):
|
117
|
+
specification.append(t._GetSpecification())
|
118
|
+
else:
|
119
|
+
specification.append(Tool(t)._GetSpecification())
|
120
|
+
return specification
|
121
|
+
|
122
|
+
def AddConfig(self, name, attrs=None, tools=None):
|
123
|
+
"""Adds a configuration to the project.
|
124
|
+
|
125
|
+
Args:
|
126
|
+
name: Configuration name.
|
127
|
+
attrs: Dict of configuration attributes; may be None.
|
128
|
+
tools: List of tools (strings or Tool objects); may be None.
|
129
|
+
"""
|
130
|
+
spec = self._GetSpecForConfiguration("Configuration", name, attrs, tools)
|
131
|
+
self.configurations_section.append(spec)
|
132
|
+
|
133
|
+
def _AddFilesToNode(self, parent, files):
|
134
|
+
"""Adds files and/or filters to the parent node.
|
135
|
+
|
136
|
+
Args:
|
137
|
+
parent: Destination node
|
138
|
+
files: A list of Filter objects and/or relative paths to files.
|
139
|
+
|
140
|
+
Will call itself recursively, if the files list contains Filter objects.
|
141
|
+
"""
|
142
|
+
for f in files:
|
143
|
+
if isinstance(f, Filter):
|
144
|
+
node = ["Filter", {"Name": f.name}]
|
145
|
+
self._AddFilesToNode(node, f.contents)
|
146
|
+
else:
|
147
|
+
node = ["File", {"RelativePath": f}]
|
148
|
+
self.files_dict[f] = node
|
149
|
+
parent.append(node)
|
150
|
+
|
151
|
+
def AddFiles(self, files):
|
152
|
+
"""Adds files to the project.
|
153
|
+
|
154
|
+
Args:
|
155
|
+
files: A list of Filter objects and/or relative paths to files.
|
156
|
+
|
157
|
+
This makes a copy of the file/filter tree at the time of this call. If you
|
158
|
+
later add files to a Filter object which was passed into a previous call
|
159
|
+
to AddFiles(), it will not be reflected in this project.
|
160
|
+
"""
|
161
|
+
self._AddFilesToNode(self.files_section, files)
|
162
|
+
# TODO(rspangler) This also doesn't handle adding files to an existing
|
163
|
+
# filter. That is, it doesn't merge the trees.
|
164
|
+
|
165
|
+
def AddFileConfig(self, path, config, attrs=None, tools=None):
|
166
|
+
"""Adds a configuration to a file.
|
167
|
+
|
168
|
+
Args:
|
169
|
+
path: Relative path to the file.
|
170
|
+
config: Name of configuration to add.
|
171
|
+
attrs: Dict of configuration attributes; may be None.
|
172
|
+
tools: List of tools (strings or Tool objects); may be None.
|
173
|
+
|
174
|
+
Raises:
|
175
|
+
ValueError: Relative path does not match any file added via AddFiles().
|
176
|
+
"""
|
177
|
+
# Find the file node with the right relative path
|
178
|
+
parent = self.files_dict.get(path)
|
179
|
+
if not parent:
|
180
|
+
raise ValueError('AddFileConfig: file "%s" not in project.' % path)
|
181
|
+
|
182
|
+
# Add the config to the file node
|
183
|
+
spec = self._GetSpecForConfiguration("FileConfiguration", config, attrs, tools)
|
184
|
+
parent.append(spec)
|
185
|
+
|
186
|
+
def WriteIfChanged(self):
|
187
|
+
"""Writes the project file."""
|
188
|
+
# First create XML content definition
|
189
|
+
content = [
|
190
|
+
"VisualStudioProject",
|
191
|
+
{
|
192
|
+
"ProjectType": "Visual C++",
|
193
|
+
"Version": self.version.ProjectVersion(),
|
194
|
+
"Name": self.name,
|
195
|
+
"ProjectGUID": self.guid,
|
196
|
+
"RootNamespace": self.name,
|
197
|
+
"Keyword": "Win32Proj",
|
198
|
+
},
|
199
|
+
self.platform_section,
|
200
|
+
self.tool_files_section,
|
201
|
+
self.configurations_section,
|
202
|
+
["References"], # empty section
|
203
|
+
self.files_section,
|
204
|
+
["Globals"], # empty section
|
205
|
+
]
|
206
|
+
easy_xml.WriteXmlIfChanged(content, self.project_path, encoding="Windows-1252")
|