MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / SchemaDiffRegistry

Class SchemaDiffRegistry

web/pgadmin/tools/schema_diff/node_registry.py:11–70  ·  view source on GitHub ↗

SchemaDiffRegistry It is more of a registry for different type of nodes for schema diff.

Source from the content-addressed store, hash-verified

9
10
11class SchemaDiffRegistry():
12 """
13 SchemaDiffRegistry
14
15 It is more of a registry for different type of nodes for schema diff.
16 """
17 _registered_nodes = dict()
18 _schema_diff_compare_mode = None
19
20 def __init__(self, node_name, node_view, parent_node='schema'):
21 if node_name not in SchemaDiffRegistry._registered_nodes:
22 SchemaDiffRegistry._registered_nodes[node_name] = {
23 'view': node_view,
24 'parent': parent_node
25 }
26
27 @classmethod
28 def get_registered_nodes(cls, node_name=None, parent_node='schema'):
29 """
30 This function will return the node's view object if node name
31 is specified or return the complete list of registered nodes.
32
33 :param node_name: Name of the node ex: Database, Schema, etc..
34 :return:
35 """
36 if node_name is not None:
37 if node_name in cls._registered_nodes:
38 return cls._registered_nodes[node_name]['view']
39 else:
40 return None
41
42 registered_nodes = {}
43 for key, value in cls._registered_nodes.items():
44 if value['parent'] == parent_node:
45 registered_nodes[key] = value['view']
46
47 return registered_nodes
48
49 @classmethod
50 def get_node_view(cls, node_name):
51 """
52 This function will return the view object for the "nodes"
53 command as per the specified node name.
54
55 :param node_name: Name of the node ex: Database, Schema, etc..
56 :return:
57 """
58 cmd = {"cmd": "nodes, compare, ddl_compare"}
59 module = SchemaDiffRegistry.get_registered_nodes(node_name)
60 if not module:
61 return None
62 return module(**cmd)
63
64 @classmethod
65 def set_schema_diff_compare_mode(cls, mode):
66 cls._schema_diff_compare_mode = mode
67
68 @classmethod

Callers 15

__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90
__init__.pyFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected