app-classifier 0.1.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.
@@ -0,0 +1,66 @@
1
+ """app-classifier — pattern-based application functional-category inference.
2
+
3
+ Point it at a repo on disk, get back:
4
+ - what kind of app it is (e-commerce, blog, admin panel, REST API, etc.)
5
+ - a 2-3 sentence functional description
6
+ - hosting requirements (runtime, web server, databases, ports, env vars)
7
+ - detected HTTP routes + data models
8
+ - optional LLM-refined description (provider-agnostic — bring your own)
9
+
10
+ Quick start:
11
+ >>> from app_classifier import classify
12
+ >>> result = classify("./my-repo")
13
+ >>> print(result.summary)
14
+ 'my-repo · python 3.11 · FastAPI · 23 HTTP route(s) · 5 data model(s) · DB: PostgreSQL'
15
+ >>> print(result.app_category, result.app_category_confidence)
16
+ 'e-commerce' 0.78
17
+ >>> print(result.functional_description)
18
+ 'my-repo is an e-commerce application. Primary functionality: online shopping. ...'
19
+ """
20
+
21
+ from app_classifier.classifier import (
22
+ AppDescription,
23
+ DataModel,
24
+ RouteEntry,
25
+ classify,
26
+ classify_async,
27
+ describe_app, # alias for classify
28
+ llm_enrich_description,
29
+ )
30
+ from app_classifier.hosting import (
31
+ HostingReport,
32
+ Signal,
33
+ analyze_hosting_requirements,
34
+ )
35
+
36
+ __version__ = "0.1.0"
37
+
38
+ __all__ = [
39
+ # Primary API
40
+ "classify",
41
+ "classify_async",
42
+ "describe_app",
43
+ "AppDescription",
44
+ "RouteEntry",
45
+ "DataModel",
46
+ # Hosting subsystem (re-exported for users who only want deployment data)
47
+ "analyze_hosting_requirements",
48
+ "HostingReport",
49
+ "Signal",
50
+ # LLM enrichment hook
51
+ "llm_enrich_description",
52
+ # Agentic mode — opt-in, requires an LLM provider
53
+ "classify_agentic",
54
+ "AgentClassificationResult",
55
+ "AgentStep",
56
+ "SubappClassification",
57
+ ]
58
+
59
+ # Agentic API (imported lazily to keep `import app_classifier` cheap for
60
+ # users who only need the deterministic path)
61
+ from app_classifier.agent import (
62
+ AgentClassificationResult,
63
+ AgentStep,
64
+ SubappClassification,
65
+ classify_agentic,
66
+ )