py-flow-mapper 0.1.0b5.dev0__tar.gz → 0.1.0b6.dev0__tar.gz

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.
Files changed (16) hide show
  1. {py_flow_mapper-0.1.0b5.dev0/src/py_flow_mapper.egg-info → py_flow_mapper-0.1.0b6.dev0}/PKG-INFO +1 -1
  2. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/setup.py +1 -1
  3. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper/__init__.py +1 -1
  4. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper/mermaid_generator.py +32 -3
  5. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper/utils.py +1 -1
  6. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0/src/py_flow_mapper.egg-info}/PKG-INFO +1 -1
  7. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/LICENSE +0 -0
  8. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/README.md +0 -0
  9. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/setup.cfg +0 -0
  10. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper/analyzer.py +0 -0
  11. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper/cli.py +0 -0
  12. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper.egg-info/SOURCES.txt +0 -0
  13. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper.egg-info/dependency_links.txt +0 -0
  14. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper.egg-info/entry_points.txt +0 -0
  15. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper.egg-info/requires.txt +0 -0
  16. {py_flow_mapper-0.1.0b5.dev0 → py_flow_mapper-0.1.0b6.dev0}/src/py_flow_mapper.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-flow-mapper
3
- Version: 0.1.0b5.dev0
3
+ Version: 0.1.0b6.dev0
4
4
  Summary: Python project analyzer and visualization tool
5
5
  Home-page: https://github.com/ArunKoundinya/py-flow-mapper
6
6
  Author: Arun Koundinya Parasa
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="py-flow-mapper",
8
- version="0.1.0b5.dev",
8
+ version="0.1.0b6.dev",
9
9
  author="Arun Koundinya Parasa",
10
10
  author_email="parasa.arunkoundinya@gmail.com",
11
11
  description="Python project analyzer and visualization tool",
@@ -2,7 +2,7 @@
2
2
  PyFlowMapper - A Python project analyzer and visualization tool.
3
3
  """
4
4
 
5
- __version__ = "0.1.0b5.dev"
5
+ __version__ = "0.1.0b6.dev"
6
6
  __author__ = "Arun Koundinya Parasa"
7
7
  __description__ = "Analyze Python projects and generate dependency graphs"
8
8
  __github__ = "https://github.com/ArunKoundinya/py-flow-mapper"
@@ -124,13 +124,42 @@ class MermaidGenerator:
124
124
  return is_camel_case(base)
125
125
 
126
126
  def resolve_internal(call: str, current_module: str) -> str:
127
- # First try your normal resolver
127
+ call = call or ""
128
+
129
+ # 1) existing resolver
128
130
  target = self._find_function_full_name(call, current_module)
129
131
  if target and target in internal_funcs:
130
132
  return target
131
133
 
132
- # NEW: if call is like "obj.method", try to map by method name
133
- if "." in (call or ""):
134
+ imp_map = module_import_mapping(current_module)
135
+
136
+ # 2) If call is a bare name imported via "from X import name"
137
+ # import_mapping might contain: name -> "pkg.mod.name"
138
+ if call in imp_map:
139
+ mapped = imp_map[call]
140
+ if mapped in internal_funcs:
141
+ return mapped
142
+ # if mapped is "pkg.mod.name", try resolving it (or its tail)
143
+ target = self._find_function_full_name(mapped, current_module)
144
+ if target and target in internal_funcs:
145
+ return target
146
+
147
+ # 3) If call is "alias.something", rewrite alias using import_mapping
148
+ # import_mapping might contain: alias -> "pkg.mod"
149
+ if "." in call:
150
+ root, rest = call.split(".", 1)
151
+ if root in imp_map:
152
+ mapped_root = imp_map[root]
153
+ # If mapping is to a specific object like "pkg.mod.func",
154
+ # treat it as root too (best-effort)
155
+ candidate = f"{mapped_root}.{rest}"
156
+ if candidate in internal_funcs:
157
+ return candidate
158
+ target = self._find_function_full_name(candidate, current_module)
159
+ if target and target in internal_funcs:
160
+ return target
161
+
162
+ # 4) your existing "obj.method" heuristic
134
163
  method = call.split(".")[-1]
135
164
  matches = [k for k in internal_funcs if k.endswith("." + method)]
136
165
  if len(matches) == 1:
@@ -130,7 +130,7 @@ def get_project_structure(base_path: Path, exclude_dirs: List[str] = None) -> Di
130
130
  "node_modules", "site-packages",
131
131
  "docs", "doc", "notebooks", ".ipynb_checkpoints",
132
132
  "models", "outputs", "results",
133
- "logs", "tmp", "temp",
133
+ "logs", "tmp", "temp","log","cache"
134
134
  ]
135
135
 
136
136
  exclude_set = set(exclude_dirs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-flow-mapper
3
- Version: 0.1.0b5.dev0
3
+ Version: 0.1.0b6.dev0
4
4
  Summary: Python project analyzer and visualization tool
5
5
  Home-page: https://github.com/ArunKoundinya/py-flow-mapper
6
6
  Author: Arun Koundinya Parasa