Skip to content

Commit 4cc712d

Browse files
removed the functionality for schema.code and schema.save()
1 parent 207e6e9 commit 4cc712d

File tree

1 file changed

+0
-71
lines changed

1 file changed

+0
-71
lines changed

datajoint/schemas.py

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -401,77 +401,6 @@ def jobs(self):
401401
self._jobs = JobTable(self.connection, self.database)
402402
return self._jobs
403403

404-
@property
405-
def code(self):
406-
self._assert_exists()
407-
return self.save()
408-
409-
def save(self, python_filename=None):
410-
"""
411-
Generate the code for a module that recreates the schema.
412-
This method is in preparation for a future release and is not officially supported.
413-
414-
:return: a string containing the body of a complete Python module defining this schema.
415-
"""
416-
self._assert_exists()
417-
module_count = itertools.count()
418-
# add virtual modules for referenced modules with names vmod0, vmod1, ...
419-
module_lookup = collections.defaultdict(
420-
lambda: "vmod" + str(next(module_count))
421-
)
422-
db = self.database
423-
424-
def make_class_definition(table):
425-
tier = _get_tier(table).__name__
426-
class_name = table.split(".")[1].strip("`")
427-
indent = ""
428-
if tier == "Part":
429-
class_name = class_name.split("__")[-1]
430-
indent += " "
431-
class_name = to_camel_case(class_name)
432-
433-
def replace(s):
434-
d, tabs = s.group(1), s.group(2)
435-
return ("" if d == db else (module_lookup[d] + ".")) + ".".join(
436-
to_camel_case(tab) for tab in tabs.lstrip("__").split("__")
437-
)
438-
439-
return ("" if tier == "Part" else "\n@schema\n") + (
440-
"{indent}class {class_name}(dj.{tier}):\n"
441-
'{indent} definition = """\n'
442-
'{indent} {defi}"""'
443-
).format(
444-
class_name=class_name,
445-
indent=indent,
446-
tier=tier,
447-
defi=re.sub(
448-
r"`([^`]+)`.`([^`]+)`",
449-
replace,
450-
FreeTable(self.connection, table).describe(),
451-
).replace("\n", "\n " + indent),
452-
)
453-
454-
diagram = Diagram(self)
455-
body = "\n\n".join(
456-
make_class_definition(table) for table in diagram.topological_sort()
457-
)
458-
python_code = "\n\n".join(
459-
(
460-
'"""This module was auto-generated by datajoint from an existing schema"""',
461-
"import datajoint as dj\n\nschema = dj.Schema('{db}')".format(db=db),
462-
"\n".join(
463-
"{module} = dj.VirtualModule('{module}', '{schema_name}')".format(
464-
module=v, schema_name=k
465-
)
466-
for k, v in module_lookup.items()
467-
),
468-
body,
469-
)
470-
)
471-
if python_filename is None:
472-
return python_code
473-
with open(python_filename, "wt") as f:
474-
f.write(python_code)
475404

476405
def list_tables(self):
477406
"""

0 commit comments

Comments
 (0)