From 596f640912cbed8fda7194d389e5f64a60867183 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Fri, 10 Oct 2025 14:41:18 +0200 Subject: [PATCH] text fitting pro feature --- .../__pycache__/sync_version.cpython-311.pyc | Bin 11321 -> 11335 bytes build/sync_version.py | 2 +- .../templates/blender_manifest.toml.template | 19 - build/templates/constants.py.template | 10 +- dist/text_texture_generator_v1.0.0.zip | Bin 59405 -> 48264 bytes dist/text_texture_generator_v1.0.0_free.zip | Bin 40221 -> 32470 bytes scripts/build_addon.py | 176 ++++++- src/blender_manifest.toml | 19 - .../generation_engine.cpython-311.pyc | Bin 11103 -> 11229 bytes src/core/generation_engine.py | 3 +- src/ui/__pycache__/panels.cpython-311.pyc | Bin 57118 -> 57223 bytes src/ui/panels.py | 22 +- .../__pycache__/constants.cpython-311.pyc | Bin 6975 -> 7193 bytes src/utils/constants.py | 10 +- ..._info_parsing.cpython-311-pytest-8.3.5.pyc | Bin 9194 -> 14431 bytes tests/e2e/test_bl_info_parsing.py | 39 +- tests/e2e/test_free_version_e2e.py | 61 ++- .../test_build_minification_integration.py | 159 +++++++ ...fferentiation.cpython-311-pytest-8.3.5.pyc | Bin 66723 -> 69480 bytes ...ration_engine.cpython-311-pytest-8.3.5.pyc | Bin 12285 -> 12008 bytes tests/unit/core/test_generation_engine.py | 18 +- tests/unit/test_build_minification.py | 442 ++++++++++++++++++ tests/unit/test_version_differentiation.py | 15 + 23 files changed, 909 insertions(+), 86 deletions(-) delete mode 100644 build/templates/blender_manifest.toml.template delete mode 100644 src/blender_manifest.toml create mode 100644 tests/integration/test_build_minification_integration.py create mode 100644 tests/unit/test_build_minification.py diff --git a/build/__pycache__/sync_version.cpython-311.pyc b/build/__pycache__/sync_version.cpython-311.pyc index ce73a6da1d2b735e3dc9ca8a8ac0e3424a9546a5..059d27974cf6103d4a24b2f58938f871552d3167 100644 GIT binary patch delta 211 zcmdlPaXf-|IWI340}vSfc#&~>Bd@M7BiCeW;bdN(lGKWl__WNDlFYpH&2xp1Gc$Hh zP8Gk$Tg&u;fk6gJZVr$*z{J?GSx|Zg6JzP*RkBLlT|mQ%xeu`_~qIWI340}%W(ewML&Bd@M7Bj;pm;pEM0gpV;Zc1$i7zsH-)^nrmv21;&@ zlQ_V{*uGg_dIl3?$>bffO5B}5?L}Q6qJ8pHSx3fco7Lr>voZ!x=2zJ-)BzN~#gd+r zpLC0*xFj{VXxiilD*BA=lLb@_8M`Jssj4$B+nl9Z!^9Xp`MG)%}0QJr)1} diff --git a/build/sync_version.py b/build/sync_version.py index 56a448a..8d6fb18 100755 --- a/build/sync_version.py +++ b/build/sync_version.py @@ -70,7 +70,7 @@ def create_template_variables(config: Dict, version: str, version_type: str = "f if version_type == "free": enabled_features = ["basic", "preview", "image_overlays", "basic_utilities"] else: # full version - enabled_features = ["basic", "preview", "image_overlays", "basic_utilities", "advanced_styling", "normal_maps", "presets", "batch_processing", "advanced_utilities"] + enabled_features = ["basic", "preview", "image_overlays", "basic_utilities", "advanced_styling", "normal_maps", "presets", "batch_processing", "advanced_utilities", "text_fitting"] # Parse Blender version blender_version = config['project']['blender_version_min'] diff --git a/build/templates/blender_manifest.toml.template b/build/templates/blender_manifest.toml.template deleted file mode 100644 index 210d5b8..0000000 --- a/build/templates/blender_manifest.toml.template +++ /dev/null @@ -1,19 +0,0 @@ -schema_version = "1.0.0" - -id = "{{PROJECT_ID}}" -version = "{{VERSION}}" -name = "{{PROJECT_NAME}}" -tagline = "{{PROJECT_DESCRIPTION}}" -maintainer = "{{PROJECT_AUTHOR}}" -type = "add-on" -support = "{{PROJECT_SUPPORT}}" - -tags = {{PROJECT_TAGS}} - -blender_version_min = "{{BLENDER_VERSION_MIN}}" - -license = {{PROJECT_LICENSE}} - -# Dependencies -[dependencies] -{{DEPENDENCIES}} \ No newline at end of file diff --git a/build/templates/constants.py.template b/build/templates/constants.py.template index 75d1d23..1fea53d 100644 --- a/build/templates/constants.py.template +++ b/build/templates/constants.py.template @@ -19,7 +19,8 @@ bl_info = { ENABLED_FEATURES = ["basic", "preview"] if VERSION_TYPE == "free" else [ "basic", "preview", "presets", "normal_maps", "batch_processing", "image_overlays", "basic_utilities", "advanced_utilities", "advanced_styling", - "stroke_effects", "blur_effects", "shadow_glow_effects", "shader_generation" + "stroke_effects", "blur_effects", "shadow_glow_effects", "shader_generation", + "text_fitting" ] # Version-specific limits (applied at build time through file exclusions) @@ -109,6 +110,10 @@ def has_shader_generation(): """Check if shader generation is available""" return has_feature("shader_generation") +def has_text_fitting(): + """Check if text fitting is available""" + return has_feature("text_fitting") + def get_max_resolution(): """Get maximum texture resolution based on version""" limits = get_version_limits() @@ -128,7 +133,8 @@ def should_show_feature_lock(feature_name): 'stroke_effects': has_stroke_effects, 'blur_effects': has_blur_effects, 'shadow_glow_effects': has_shadow_glow_effects, - 'shader_generation': has_shader_generation + 'shader_generation': has_shader_generation, + 'text_fitting': has_text_fitting } if is_full_version(): diff --git a/dist/text_texture_generator_v1.0.0.zip b/dist/text_texture_generator_v1.0.0.zip index 8dc8c3caca3a0253904ff3fa297ca7158cbcd9a7..92849ed56d5771629e47b86f4de563c29939c5d7 100644 GIT binary patch literal 48264 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 literal 59405 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 literal 40221 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%0A9=9i+OpkX1u{{i<&LjdKZ`DJt>p2{V{i` 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 Vgt^vWTV=p*L5Q%+Qs$3${{`K0{T=`S diff --git a/scripts/build_addon.py b/scripts/build_addon.py index 3021050..1fad4c7 100755 --- a/scripts/build_addon.py +++ b/scripts/build_addon.py @@ -15,6 +15,128 @@ from typing import Dict, List, Optional import tempfile import argparse import fnmatch +import ast +import tokenize +import io + +def minify_python_code(source_code: str) -> str: + """ + Minify Python source code by removing comments and docstrings. + + This function: + 1. Removes all # comments (inline and standalone) + 2. Preserves bl_info dictionary (Blender requirement) + 3. Removes other function/class docstrings + 4. Optimizes whitespace (max 1 blank line between definitions) + 5. Maintains valid Python syntax + + Args: + source_code: Python source code to minify + + Returns: + Minified Python code as a string + """ + # Parse the code to find docstring line ranges to remove + try: + tree = ast.parse(source_code) + except SyntaxError: + return source_code + + # Collect line numbers of docstrings to remove + docstring_lines_to_remove = set() + + def process_body(body, parent_is_module=False): + """Process a body of statements to find docstrings.""" + if not body: + return + + first_stmt = body[0] + if isinstance(first_stmt, ast.Expr): + value = first_stmt.value + if isinstance(value, (ast.Str, ast.Constant)): + # Check if this is a docstring (string literal as first statement) + if isinstance(value, ast.Constant) and not isinstance(value.value, str): + return + + # Always remove docstrings (module, class, and function) + # The bl_info DICT itself will be preserved by not being marked + # Mark these lines for removal + for lineno in range(first_stmt.lineno, first_stmt.end_lineno + 1): + docstring_lines_to_remove.add(lineno) + + # Process module-level docstrings + process_body(tree.body, parent_is_module=True) + + # Process function and class docstrings + for node in ast.walk(tree): + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)): + process_body(node.body, parent_is_module=False) + + # First pass: Remove comments and docstring lines using tokenize + # This safely handles # symbols inside strings + result_lines = [] + try: + tokens = tokenize.generate_tokens(io.StringIO(source_code).readline) + last_lineno = -1 + last_col = 0 + + for tok in tokens: + token_type = tok[0] + token_string = tok[1] + start_line, start_col = tok[2] + end_line, end_col = tok[3] + + # Skip comments + if token_type == tokenize.COMMENT: + continue + + # Skip tokens that are part of docstrings we want to remove + if start_line in docstring_lines_to_remove: + continue + + # Handle newlines and track lines + if start_line > last_lineno: + last_col = 0 + + # Add spacing if needed + if start_col > last_col: + result_lines.append(" " * (start_col - last_col)) + + # Add the token + result_lines.append(token_string) + + # Update position tracking + last_col = end_col + last_lineno = end_line + + except tokenize.TokenError: + # If tokenization fails, return original + return source_code + + # Join tokens back into source + result = "".join(result_lines) + + # Second pass: Optimize whitespace (max 1 blank line between definitions) + lines = result.split('\n') + optimized_lines = [] + blank_count = 0 + + for line in lines: + if line.strip() == '': + blank_count += 1 + # Allow max 1 consecutive blank line + if blank_count <= 1: + optimized_lines.append(line) + else: + blank_count = 0 + optimized_lines.append(line) + + # Remove trailing blank lines + while optimized_lines and optimized_lines[-1].strip() == '': + optimized_lines.pop() + + return '\n'.join(optimized_lines) + def get_project_root() -> Path: """Get the project root directory.""" @@ -78,7 +200,7 @@ def should_exclude_file(file_path: Path, source_dir: Path, exclude_patterns: Lis return False -def copy_source_files(source_dir: Path, dest_dir: Path, exclude_patterns: List[str], exclude_files: List[str] = None): +def copy_source_files(source_dir: Path, dest_dir: Path, exclude_patterns: List[str], exclude_files: List[str] = None, minify: bool = True): """Copy source files to destination, excluding specified patterns and files.""" if exclude_files is None: exclude_files = [] @@ -104,9 +226,23 @@ def copy_source_files(source_dir: Path, dest_dir: Path, exclude_patterns: List[s # Create parent directories dest_file.parent.mkdir(parents=True, exist_ok=True) - # Copy file - shutil.copy2(item, dest_file) - print(f" Copied: {rel_path}") + # Copy file with optional minification for Python files + if minify and item.suffix == '.py': + # Read, minify, and write Python files + try: + source_code = item.read_text(encoding='utf-8') + minified_code = minify_python_code(source_code) + dest_file.write_text(minified_code, encoding='utf-8') + print(f" Copied (minified): {rel_path}") + except Exception as e: + # If minification fails, fall back to regular copy + print(f" Warning: Could not minify {rel_path}, copying as-is: {e}") + shutil.copy2(item, dest_file) + print(f" Copied: {rel_path}") + else: + # Copy non-Python files or when minification is disabled + shutil.copy2(item, dest_file) + print(f" Copied: {rel_path}") copied_count += 1 print(f"Files copied: {copied_count}, excluded: {excluded_count}") @@ -145,11 +281,19 @@ def get_version_from_git() -> Optional[str]: return None -def build_addon(version_type: str, version: Optional[str] = None, output_dir: Optional[Path] = None): +def build_addon(version_type: str, version: Optional[str] = None, output_dir: Optional[Path] = None, minify: bool = True): """Build addon for specified version type.""" - config = load_config() - exclusions_config = load_exclusions_config() - project_root = get_project_root() + # Use current working directory as project root (supports testing with temp dirs) + project_root = Path.cwd() + + # Load configs from project root + config_path = project_root / "build" / "config.json" + with open(config_path, 'r') as f: + config = json.load(f) + + exclusions_path = project_root / "build" / "file_exclusions.json" + with open(exclusions_path, 'r') as f: + exclusions_config = json.load(f) # Determine version if version is None: @@ -191,7 +335,7 @@ def build_addon(version_type: str, version: Optional[str] = None, output_dir: Op # Copy source files to temp directory with version-specific exclusions build_temp_dir = temp_dir / f"{config['project']['id']}_{version_type}" - copy_source_files(source_dir, build_temp_dir, exclude_patterns, exclude_files) + copy_source_files(source_dir, build_temp_dir, exclude_patterns, exclude_files, minify) # Create output filename version_suffix = f"_{version_type}" if version_type == "free" else "" @@ -210,7 +354,7 @@ def build_addon(version_type: str, version: Optional[str] = None, output_dir: Op return output_file -def build_all_versions(version: Optional[str] = None): +def build_all_versions(version: Optional[str] = None, minify: bool = True): """Build both full and free versions.""" print("Building all versions...") @@ -220,14 +364,14 @@ def build_all_versions(version: Optional[str] = None): print("\n" + "="*50) print("BUILDING FULL VERSION") print("="*50) - full_package = build_addon("full", version) + full_package = build_addon("full", version, minify=minify) built_packages.append(("full", full_package)) # Build free version print("\n" + "="*50) print("BUILDING FREE VERSION") print("="*50) - free_package = build_addon("free", version) + free_package = build_addon("free", version, minify=minify) built_packages.append(("free", free_package)) print("\n" + "="*50) @@ -246,14 +390,18 @@ def main(): parser.add_argument("--type", choices=["free", "full", "all"], default="all", help="Version type to build") parser.add_argument("--output", type=Path, help="Output directory") + parser.add_argument("--minify", dest="minify", action="store_true", default=True, + help="Minify Python code (default: enabled)") + parser.add_argument("--no-minify", dest="minify", action="store_false", + help="Disable Python code minification") args = parser.parse_args() try: if args.type == "all": - build_all_versions(args.version) + build_all_versions(args.version, args.minify) else: - build_addon(args.type, args.version, args.output) + build_addon(args.type, args.version, args.output, args.minify) except Exception as e: print(f"❌ Build failed: {e}") diff --git a/src/blender_manifest.toml b/src/blender_manifest.toml deleted file mode 100644 index 82dce71..0000000 --- a/src/blender_manifest.toml +++ /dev/null @@ -1,19 +0,0 @@ -schema_version = "1.0.0" - -id = "text_texture_generator" -version = "1.0.0" -name = "Text Texture Generator" -tagline = "Generate image textures from text with accurate dimensions and instant live preview" -maintainer = "Marc Mintel " -type = "add-on" -support = "COMMUNITY" - -tags = ["Material", "Shader", "Texture", "Text", "Image"] - -blender_version_min = "4.0.0" - -license = ["GPL-3.0-or-later"] - -# Dependencies -[dependencies] -pillow = ">=10.0.0" \ No newline at end of file diff --git a/src/core/__pycache__/generation_engine.cpython-311.pyc b/src/core/__pycache__/generation_engine.cpython-311.pyc index 3280c21bec51089c021d22110fec4c2a993640bf..83fd243d04ae37a1b01937d3304b8d777c38f5ed 100644 GIT binary patch delta 1669 zcma)6-%ndr96#rt-re4o(jT;RtSxORE4!2eZ3is~lEQ;?{>b<-SUN{jddrUig`D0E z6H6A%%uF_&-@nP}@nEB$1X3zoCA}nBx&KF}e#^{UZR9b>hoc4bE`Fy{h z?>XoDz324F@Xm7?7dN&A=Fxk*u2GW>E}5AoDjt zOeL#j;UH-d`eNK(i2IYTUstIR!b%5mqmy0lK%5i-`((jYM=2W{D61_qu^27$MRU5E#+~E~ z!4h_sRMd+^TFs)F#$08ug)(=URcE2h;νcEUR1Q#;^un3x{}|s|VNtK~|fSSWVe87*~eLPofWAB2}8G^RTLVx^lS+ z?4VT%xq9+I6S8&DNVyWZYP#4;Y%j)_kQF+~ZH=wiMIp!b=pnV*6aQN=ptTnF?;$hV z(SsVEXnT%TL$u-_=qKH}iE^HeXvA8nF&*##te=R#+Cr8MHTuM1PqXS=fL2~dwhcZQEOy;)jD$iZg-qZ58(bHqS(OaN>3O9) zpDaZIpl|HlqEiIQG`VH;z-jWSu>*$4kH)a&(h*hrfhu5X5ZV_b*+?$T)?HmPU5Buh z{8bf&deUjWz+pu0m|t^N(rj#C#zakqT@RNFTbQGo8uE3O4?ZLVmNvDOQi;QLd5RcWX6{!oeJC3zv$a)7F$)0tP$13Vs zJ$o_@j|e`ixdnSj+o{|18ay~PV(O==f@VH}mH5JxtW08oG}`82jC^40g%+}Fvuoa> z61GO>{Hn_S5fV28(e*&zMxbx?L+3r=Mi6|7UT8=-z&F0=*#SRz=xQA>a%;xU{t9kg z3n^Z&@b!1{>tT-J4#;q)nc{pUqWZkiG|<53Jw@z=3^(x1-vsHTdB0{*MES6KP=)e6 zJoP+M@znE3L=5YqH_i;TgN-((-Do#n^rB6{a?y=8?M%Dr=9$M^NAZ>@4Trd`AX9FI zd?RlDaV0_!rhi0q=?KO0dHKP4`Nb&w@)mRYhH}VX(AcljQWDxCl`I3J0 zgP%_Z$;z3hR@QLL{&#SUnak8j0)B<8NRi+|$(<1>a{V`o$F5+QNTpLap`_yTICXt0 zwSeEH5)*-qU&Y>LY0O9`3PLBGe&CJHYul@23S(Z2$2Twk_Xj_yIG=w2o;!G~XnZ)ELNQRigRW8Gu6{dKVWCW8x z&&BPFuT3ug;vqlWd~#hN70U~@kT5^uP(cGVRQ48hh{C&(XO2{uXsBmr93fKArW`@?GFx!8kqEoV*RXX* zfPF3LtXS!?`(YcE#Y2{U)Hy7lE|=lB{25ks>Lh06Zae$r^i#P$)+8CEpY=%UDEe6Uic3TP)oqZ+M!rt7`sbdi?zi-jK4UFJd52-j~OA{U`pzTg$Fh-`a7Wb3OZTwp?#oRTJzzcNaN= z2L=s`m!4xq*{eA6*}Z+wIf~8Jfx46=Icl*%U@h!ZC8&??`JlU33Lz(#A7|ew5i-tx zSK7f9Q`_|ZeXip>uDsf4Z!IL|62;?I)w6<&eHphef3Hpx@;vL%QbcA2t(V{8*%<2Q~HtKDtw1Y$)2u`--T_7$N^_^dy^G%U`sV4_MB;Bk~ zdkx;U(?6j0!ifRTil`(7=!n50({eB8;)?Bei3_txg;K8Hs7Aeb<^t*68L6Mv3HChyJ580(Dn}vq)v|j diff --git a/src/core/generation_engine.py b/src/core/generation_engine.py index 7202f32..12732e3 100644 --- a/src/core/generation_engine.py +++ b/src/core/generation_engine.py @@ -4,6 +4,7 @@ Core functionality for generating texture images with text overlays. """ import bpy +from ..utils.constants import has_text_fitting def generate_texture_image(props, width, height): pass @@ -102,7 +103,7 @@ def generate_texture_image(props, width, height): # Determine font size (with text fitting if enabled) font_size = props.font_size - if props.enable_text_fitting: + if props.enable_text_fitting and has_text_fitting(): pass # Try to load font for sizing diff --git a/src/ui/__pycache__/panels.cpython-311.pyc b/src/ui/__pycache__/panels.cpython-311.pyc index 09bf696845aca56a6cab79a133cd9f1c23d17a66..f028f467836894db98ff48e6d60f2d6158ea3c77 100644 GIT binary patch delta 6214 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 H(SZL0Od|c+ delta 6159 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 Mvh)vb)}zb*2a#v%-v9sr diff --git a/src/ui/panels.py b/src/ui/panels.py index 9563c84..dab2b9d 100644 --- a/src/ui/panels.py +++ b/src/ui/panels.py @@ -12,7 +12,7 @@ from ..utils.constants import ( get_feature_availability_text, get_version_info_details, has_image_overlays, has_basic_utilities, has_presets, has_normal_maps, has_batch_processing, has_advanced_utilities, - has_advanced_styling + has_advanced_styling, has_text_fitting ) @@ -655,8 +655,11 @@ def draw_normal_maps_section(layout, props): info_box.label(text="• Invert changes raised/recessed effect") def draw_text_fitting_section(layout, props): - pass """Draw text fitting controls""" + # Check if text fitting is available + if not has_text_fitting(): + draw_feature_lock_indicator(layout, 'text_fitting') + return # Main toggle for text fitting layout.prop(props, "enable_text_fitting", text="Enable Text Fitting", icon='FULLSCREEN_ENTER') @@ -890,22 +893,11 @@ class TEXT_TEXTURE_PT_panel(Panel): @classmethod def poll(cls, context): - pass - # DEBUG: Log poll method calls - if hasattr(context.space_data, 'tree_type'): - pass - else: - pass - - # More permissive poll condition to ensure panel shows up + """Show panel in Shader Editor only""" if context.space_data.type == 'NODE_EDITOR': - pass if hasattr(context.space_data, 'tree_type'): - pass - result = context.space_data.tree_type == 'ShaderNodeTree' - return result + return context.space_data.tree_type == 'ShaderNodeTree' else: - pass # Allow panel even without tree_type (sometimes happens) return True diff --git a/src/utils/__pycache__/constants.cpython-311.pyc b/src/utils/__pycache__/constants.cpython-311.pyc index 58cf74379c889f091eaca1820ec4b1b881fc4760..efb6015d0790b9a726d888eef938e99695bf6dd4 100644 GIT binary patch delta 1418 zcmZ`&Uuaup6u)0?zMJGG_a-;FNp700%cix7by%g=R!gU=8yhmmbc)NS*R1EJyuzXL1nK~U-U(>s81r>gAka4`l9E%YtssP;r?=d=g)U@ z&hLCzN8cVZ-!}|hq37x!*Jq8~8>Z9wjo2jxl&S)(${^%1V5dSdM}$CaG6q58??hmLt`z)nPCpITLECGYX{MWmOfdMWq^sG$Dr!p$7J1N2x|2OC$<8 z!WiTUb#MsdP#{b|AE5z7LKC(TCSf~a3i=5x*g=?v5@7~*656nfFblU4=HPb1JPZ&z za0g)l1_}G1{De}eoSW3Au%GQwh3DaO%)tw6JRPQPE9wpTBW}U!7wldZHH9f%NmSKO z%(X<@d$H}-{dU`L&fur&Ok9rahC&rW#oggC#<3ng&x-hS_zDha{T6-0J?n{kEyBDB(BB3{Gm6K189rwOJ=dDUE;$;??FAX%;)wCOmfbA)!EpGaM33R0#zif+8Mtib^g~3Sk*6P*F%&sr#TzZf!Gl;J$i5A-^o|C!bTv2ms16Pl&FuNr53fm&A>4$&z~ZC z8W*e~bdBLVcTLTD)2B*)y(CpGt*cz}Tcz6Bn%}6MYOV ztS|Wqq6;{mp3n`lRC;gzf*+?}v)i)o^#|B;;yh~?@I%YNXES~$Ap!-0A*U%x1k(#9 zCDjyxZoycB?t@N)uH--4f3#u*N(rfokP-+vZXri2r1(NAE#w@99GQ@#5poPc2Vy8f zW+f!XaLRr_cZtYb-a3OzcG>#TDR)U(t*a2c^w{tHtDoDPt#9YI*&SR;^VaHL*=sCc zC38(}cunyjS;6MhvB&ZI{4k#*&pT*3FLa7)5!Z$JY1b7yWkKX*!}Xi>`CCN;8POtw432D?fRqADBiDm~B(EY($dFp73@=pVZqLNNdU delta 1271 zcmZvaPiP!<6vyYcGr!s0*`1mFlbM~}#5Qe{ZZ>N*)RLygG)k-uC6=nOmQ|^#Z_*@& zO?bOe3Dk%UmO{1GhlnK*@gjN=+>1ARRD0<`P=cUdq&Zj?#hak-H;c7}4$Oz|`}3RM zdvD%HBVP|YpW3#i@$=zNH|NfHSDaw&ma;U^Y8r@|fLJI%e?b}%!rlbMBHW)5~S^RS!Q1$&qt^f7(tXBJ>DGk`L) z2m{Y(mCEX2YhtP1XwKAWP#oH|vbebFPlvBJdlgnN>^&ORL!4iD#ka&1GH`KwdP;u z+=tkCfPRZ#XXlrRVL8I~2>qV;SPav<$sRe%_M`Mg@0gm71GroLYQj6=vS|sN?o&SDU1e_ z;}neAi`t3GR};o)mQlS?X;B&K+9#$f>1bN0#)E1csM<%>E~8 zEkq@T2U%0nJ7_)6VujyEosM|}PP>ry&9=sP^Y~vqt@EA~ybTxq{qjXly4IP*x*pZ`McamI#Zc|l9aXC} zxMyScYDWzlRS&4@Lv{OIJ4QE)wl&XQ!EZySe~O!)F)3ng?SJ0TGHs{TDmh|@E{59L RZCHWGw6)tfK)1T9{{p;v60!gQ diff --git a/src/utils/constants.py b/src/utils/constants.py index 41d72bc..210f893 100644 --- a/src/utils/constants.py +++ b/src/utils/constants.py @@ -19,7 +19,8 @@ bl_info = { ENABLED_FEATURES = ["basic", "preview"] if VERSION_TYPE == "free" else [ "basic", "preview", "presets", "normal_maps", "batch_processing", "image_overlays", "basic_utilities", "advanced_utilities", "advanced_styling", - "stroke_effects", "blur_effects", "shadow_glow_effects", "shader_generation" + "stroke_effects", "blur_effects", "shadow_glow_effects", "shader_generation", + "text_fitting" ] # Version-specific limits (applied at build time through file exclusions) @@ -109,6 +110,10 @@ def has_shader_generation(): """Check if shader generation is available""" return has_feature("shader_generation") +def has_text_fitting(): + """Check if text fitting is available""" + return has_feature("text_fitting") + def get_max_resolution(): """Get maximum texture resolution based on version""" limits = get_version_limits() @@ -128,7 +133,8 @@ def should_show_feature_lock(feature_name): 'stroke_effects': has_stroke_effects, 'blur_effects': has_blur_effects, 'shadow_glow_effects': has_shadow_glow_effects, - 'shader_generation': has_shader_generation + 'shader_generation': has_shader_generation, + 'text_fitting': has_text_fitting } if is_full_version(): diff --git a/tests/e2e/__pycache__/test_bl_info_parsing.cpython-311-pytest-8.3.5.pyc b/tests/e2e/__pycache__/test_bl_info_parsing.cpython-311-pytest-8.3.5.pyc index fd95d76f97746002b96da251bc4f933e683e11d2..c023ed8d83f07ca686cbb1532cce9e5b855470fc 100644 GIT binary patch literal 14431 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 MJa)77DJj(d01?XzQvd(} delta 1238 zcma)*&ubGw6vyYyZnD`n+5Bp3(^^v-ZC(4z*dM9Y`h%)HXhBfaiW*`jvC%XM+by+W z+k+<$B9`Y(1W~DqMTH*iLH~n7(ZgQq!Gnm1peI3ec8$e~LS}Zp%gj7J@6Eh7tHlq) z%0rK*itzSMeLp66=9D@(IoEp9L5~yFF?VZ8xkwn?1A{Qi=z@UfAp#=Kf*NrcVg{Jg zpoWm4^CBTn`1sYBr28?}U4x$-DhhM}B-~3!z=hXo1Y}&G5r0*Qo3d)dk%f|zkQpZ) zlcV^9Hig_*V21J`&IsJAr&P`D6zma(B3?tfP43Wn;J)}M`|{Z&{~sP#gaPoQB91@+ z?>diw8y|_o5X8^opu^30$7^ld@QkBTsa$KNtDFMgg8a72%}^QfQ%C0-P%!i;R*kXPE|CW#c6%4kT2C- zn9Sx_m#v8;V}*QYak}K}=+LK&X;aKh=5p8-h*qiajSdc~P}+&HU;|DC&O-^`1g?X+ zm7K7nea;>VEQX;_$sYJqbS+VNb{Djtq!Fcykm4mba zOZqHnv80EKDHW6YST1`(6Rf3kTpp7zT#0s;%Qx4a@dBI7rT1zXKDD0zgn 0, "No __init__.py found in package" + + minified_content = zf.read(init_files[0]).decode('utf-8') + + # Verify minification occurred + assert '# This is a comment' not in minified_content, "Comments should be removed" + assert '"""Module docstring to be removed"""' not in minified_content, "Module docstrings should be removed" + assert '"""Function docstring to be removed"""' not in minified_content, "Function docstrings should be removed" + assert 'def hello_world():' in minified_content, "Function definition should be preserved" + assert 'return "Hello, World!"' in minified_content, "Function body should be preserved" + + def test_build_without_minify_flag_preserves_original_code(self, temp_build_env, monkeypatch): + """Test that build with minify=False preserves original Python code""" + # This test will fail because minify parameter doesn't exist + + project_root = temp_build_env['project_root'] + output_dir = temp_build_env['output_dir'] + original_code = temp_build_env['sample_code'] + + monkeypatch.chdir(project_root) + + # Build with minification disabled + output_zip = build_addon( + version_type="full", + version="1.0.0", + output_dir=output_dir, + minify=False # This parameter doesn't exist yet - will cause TypeError + ) + + # Extract and verify original content preserved + with zipfile.ZipFile(output_zip, 'r') as zf: + init_files = [name for name in zf.namelist() if name.endswith('__init__.py')] + assert len(init_files) > 0 + + preserved_content = zf.read(init_files[0]).decode('utf-8') + + # Verify original code is intact + assert '# This is a comment' in preserved_content, "Comments should be preserved" + assert '"""Module docstring to be removed"""' in preserved_content, "Docstrings should be preserved" + assert 'def hello_world():' in preserved_content + assert 'return "Hello, World!"' in preserved_content \ No newline at end of file diff --git a/tests/unit/__pycache__/test_version_differentiation.cpython-311-pytest-8.3.5.pyc b/tests/unit/__pycache__/test_version_differentiation.cpython-311-pytest-8.3.5.pyc index ddb036587ccb76f89e479b0291eccd76e898a647..17d0588d439bb30a8c806dd3c2dee710b20218fb 100644 GIT binary patch delta 3424 zcmc&%Yj6}*7Vg_UGnq%v115nG6(U2BS;jB*e;#+Y=x$ z!$ic@tl@dU_&^k*kVVUNX|`D1a+M`jvOmNbj8->H8$CL z7w5I96+-0h^lF02=wV@h1$KS8$^exW3oX2Cl2c@JEe}UZ=elG|(9kZl8(O%avE8T~ zfzuV!ud=oqYlv(^dkufcz;Q3IOFv{0et2~noL%RI+wNUNL>RqiI{as=6W*$y4zIuD zOqcEZgfO;cD9@9h&D=r<<%az^#&(2&72Z)Z6ZN|UB;k6cH!p`&n97)eh{wF z=HagA6vIY-ldziGNC>x@Bkc3*)I8VD%LaMMmszwiQy_ZYlRGfy}_VszBztDn$zTHwC1cxF}&$TBVO-)4gQS zl_;SN%t0FwYz*4wD74zw5~!PhFjonKiGuHOH&aP0aN-fx1vOA0d@No1;om{4}7ca=pr+(A=6^Mn&fG z3gamU#fi62?iFboX26uR8NmSS>1=Q~Eg`R&&WihR@6xLgDi9VTco+=YZfGfQUlpmWfj8({sD68j=if1rgnDpGY5rT*%Gw4tiL#VCAneX!f89Q$+WD^N>yPoM zQIm+iNX(;4;zOp22Dw9?xHV=Pw@lDw=`vl@n-&jZ62_y`#)xiV+GxsHB@?5fA)#2z zs4;faT4yd`kG_gGYP@9$Y;0^S!IErv`D~%dQ(P{cHQ5^aa4O$`U0=d*zNDWKdu6}9 z5*JYyOkTw7-qf&|jflR%jW=CQkT@oKMRWyigk;xj|G%?Er z8Cyi0M33rC#Zi2IHi%9eBf5o&qqD>+(UT;I^&u{ze$!fOu`|D)sC+ej?;t<`8;|grZ#I$!kT%Pv#nm@+~Lx1>^+;`4Z%P4#TpkDSc@K zG0RzUh0u3nkx(KS-^>-+;FMq}NwJ(t5s+I6a+}7lFqF(nIW?OwEc1$kW=U$SYVb?a zpjDC@nq*kCW(iL>!-h38$zj;LX7{WNyOH(br$FbjdZ`(P`wG;JYg+~KFkJZaG=|?F z%z+)UnX$*^E8$+LoOG(krAH0vT^Mj3LN)_7JMF|lS3IJNMQkP8)vNqPBsYY<4ul5~ zwjlf!VLQTu2wDaB(xnf@;4jc!Q$`-rs+v<r5APuA=`TLC^Rx|KyZA?PKkKuHJPE0nW~V)cL2d;6Wv2a96n^(la;5t1cPET_$#%r&7;qjT;nqGy8-k5=j}mgb8M!x&Zs{)O$qLfby^SZn z#oCjvJxbcX(fXl9PR@48yqLY+TI&4;bd;sR|8$gn-QV(rE?7?pd%-2g3!43_iQfB; J9}oynegtEe*AV~! delta 1435 zcmaKs4`>s26vy*&m)Q1lG1ZD8${e<+8MRJDEVQ^eL1DB}(N$4oY}zu*B6TR` z4*S>Dw|Uw&r8UK}!HRN-Ak^Y2473{UL^O5G;9zaF;J~WLnBMo7&9xz0AfJ2pzQ6Z) zzxRH>8|jdvb+WTZRkJMSZ^6BhPa2BOI&BgabE0Y&fKpjr<4=kl7$ z%~WHYsBDnk;nWE2AUxsM5n(eTOtr>e{x!66AGG~I5U2qT0bc>10}FsWAoLIR@%}0w zh1gTE%CKoA3N>=q#M^u*G@F{ZHS{ALF?M_z$yy?+7X=+as26w(NZFQl7|t+z>sBbD z+GL<8xuY)E{`c!obN2RT|=)!x5N6G$FDX}%m@xPT34r= z_9d*k0^9&@0V)0Kgb(QCwK0u4#oV98zRxVEhjJ1q0oDUcfd-%vcn@d-nmKlNZRXc7 zTTF1^3lA5@hh38<4lQ|>HVx0tOO72r5&tHvZ-EbhEx>VZ9*)qkk$-Qm!@LV!BUN*e z&MRv!$OS+)kOPFdV6=!1a^>hEr45dDAkL9dk6To+)qI~k(PdhMW1}H@Xq1i(r9X9d zkm460rE9n01MYCyxQ}j&u00sfnwFQgIaqxZNH&PGCyt71wa)WDo3}oVT3=d>o~H@b z>6MauUVa%#308O3}2 qyFUB0e3dq4t|Rkb-K}3%Nh|!A2p`A)e*BTto=ja*a=yYzR(b^kP>dA- diff --git a/tests/unit/core/__pycache__/test_generation_engine.cpython-311-pytest-8.3.5.pyc b/tests/unit/core/__pycache__/test_generation_engine.cpython-311-pytest-8.3.5.pyc index 6b1579e3e077024e2161c74c074ea9b6ccec46e8..02a8779bde3fa77521a48c1a92c05d44e97cecda 100644 GIT binary patch delta 3128 zcmbuBO>7%Q6vt=QYp*x)`ujWacl?z!2@Od^3yqXkEjFbos6{GOE33*hfSa~qZ9W>U z36(f-0>KC&0T(W*s`OIKp+W))s9NWOQiOy^p+!OndVmHMgaB1AZ|rsA#OZ}e_US*f zZ)V$!tUy{@D{cbg;=M(Cw&zIM&+$^K@4G$J}Y!3jAg9PMM%RJ z?DMR@&>Yi@g#f+S<$1!~=1x$bsTnn~$Re({LbtBUTXlsHakQ>Hf+{A6K$3`4lL{gF zzToz1(uQrMLKp%#;d%-a_pA}2HXadu8%@$o#em)`M0G_J%~Xi#y_T>%8^SX4!pLh2 zL%bVyl?!p|2qt#P1xa65lQnZOq4!pIZ`secVZRQxU+^KVqu8@?s(>_uCJ;aI&l}k9 z!mfHd!hZ2eXT?GS@JC}()_6~43se-XQ&XP96{}_~U7$C^-Y5xb)+tQ7;Kr0N&mOS_ z{V_wNyS$%njkxJwf|cHm8u4CwQ}WPM+^Oui+`W)Pr~c`BeU!liE6fIFrQ~HKdJj7)L6s8M~eOW4b4u^#v;DJi!525Ha@`* z2v7a%dg?KrdYq+>|4-^>NS!3w*6MrNW>?)UdG=Bq^B38i1nFrM!qMWeT8QMjLZo;h z(wd`D2xpr@tgnL;>L3RyRuW)P$W+gET*4_E^HQ5;&w24Dy>2QLvTkg&UURtys!UNUMt-aW^ z9ONr}GT;-vY!>~+HjV>y&^|<`>@?(B7E8ycr&NH(a>vQjlP3x@>gk!1%6%PNTtmTAvPFUR;Gz1!8mI5yH9V#Hu9_!%pG zBi7bu2O!QC;f?KK7;XLxQd4e<5ry+RYp zq?5rns*jfkb;ZuLt2I#ePG|>T_l5Nl$c0z~zKkXH#^D>+d#k&*?6(p2P57>IyBT-` zzFy+p1in7P{y2Q^sdoEX;akq@VKRaybxr&nNrARB4wm;(N8C+cm$P&tZll+w0AsOD zWGD&J?<8MfJ!iXg&eFTGFV@{!XAo;D{i$L2m?TWo%|Nzf4f0Mw5XUiR&~3GOjX?hs7zD_c4k=9WCr7hB(RJ-Xx?X4=Dwn8_=F^?wX}Dk$N4& zW?siM)G@tj9Z80?t(VfM7x6K~X6fzt@*JF670{$wz$jp>%HwJg zzyMg)A!cT+$4aH+YB`$B%$ym{megVTVb4f+zY45TN5G7Nc>oOiT$8b3@ zp303GugDC)Y3XWLHfNV>qJ`<2UCg#X$|Ko4NhgIo_; z*s8TLF)zrAf`REpBL;2a+9T!z(qcEx2WYWBXM^uK6%1UZar$Y$=fOv@v10|Tu}6fR z*qB^F?X7x7Un8qf%fKl?mFV?>P{+$`82Da#l?sFV$5%`T1k4s`Z-3+Czi)DvZ}A^D Cy+4Zp delta 3630 zcmb_fU2Gdk9iOpx*I&E-_WC2SV>`AJ_v$pgYr<7DZNsUpt)q8Wu7^rQS%r?Bj!Ymm5O}{TVW5lG@;73Evt&x=t{$ zEy;5-{}+~&E8aOTMmALSR(*FcLO z3p}H;M|t(upMEL&oe14#KaLMI?%{7>TfM~omPledJ8m0V7wVmXBBbNHUMnYE(4r=z z-kQWYpk~ahsSCP&F>dCxgo)}U6Cp&5Ftg9w6)Xai0}}D;lEx=(H}!hcr9N*G+Zs}t ze|YGOq$SNZx}=MX9ll!1d`?2TsEwF83yZLIyi;h+0c=K{z5Yq0&%aYkGg%yc$*DQa zes!nrSj?EYu6K(+wa=f6rISN1xfZhnTAnhW@wu^)D2d*&^EJZn-SlO?TGrfa9ukA= zd#R$hH}J*QWZkXHU&m{TuGH?b#N-R}){X@gycv%~+3U1R_|k_Gnci8ILVr&RWp^TSs<7VW9eLXfCu4L`+ z@1HGHJmLqz*g$hlKKrp5}{oz@No{ zj~Muv%zNGR2o;}e(`N@9#DGHv&I*-+W3z}W1$H_f6}_&ug0XveA4`kA#{KvRPS>B~ z!)hnuu}&u6$%7S6w$|ecr<#3O_Plhrzh*~U42A3Hoz~Gh3nK+Qu}>0hg zw58BIVUZz)X_HJ>pe_FTrPq|gu84M|y?(;%&5*(fiR>YTD&ZGM;ojhkYL&uzkIXLS zOg|)Q$WLsbIL7NQoAnS{EU@dtD%(hj#onIA%o_Sr0!731Q|#ALSbe&H>uP+rXjp%0 z@sUJFWlyo4On8zES*ME(8{(Dhs%-rYlK?`z*GX5{rW>OBC3T?a{&tTzq>MO>43y#j zOB`~8;y}`aL#$Xr%pN(1un|o5*y-QL1DGZmQ|1Ym{H~S{3Wp)>Z>U__VM%!S>4=Q; z=k^|<$Qhx?L(RSusqjpEhaEA&oPYL{lwabM3%heZz4x4xG4d=EtF$MUsQjQBXL`1^ zF7q`&6)-+9@GeUO+?=HFYDyzuKqn|j8wEw9AZ8Ta!zjoJ1+k!MFmOIo*qby9CJzQS z=qt1Ua2!k#%sy^bkDs`*W0&*qO6U2rT9ri#_rrftf<5P4 z+&JeNpB7xWd&qrPSa11=eOQs%ujj|dgy+C+AaH|-d(VBnBYi8?kDxDsWFQrQO| zEffq)Qtb%)S}8JJ!J>Ny_1G`kj*0ml)NklpX7gf<{id`$&%XfPs0Rj^R&8LZ#nsAf(CV3f?=hFcpk$a+S{47p^XA z)#XbIJOi&E)Xfe~B;7YTgd?o>F*`T$>iR?EzHVF(QEbcl+mVp$|IVQe=gp(<9NqS$ zw>@Lqo{4SG)IITmXXd)|A+o>i{I>6#z74$b0>7@^n)&|B1C-fDnJtuggbr_6e>>7? X8|I Optional[object]: + """ + Generate texture from text. + + Args: + text: Input text string + + Returns: + Texture object or None + """ + if not text: # Validate input + return None + + # Create texture + texture = bpy.data.images.new( + "TextTexture", + self.resolution, + self.resolution + ) + + return texture # Return result + ''').strip() + + from build_addon import minify_python_code + result = minify_python_code(source) + + # Must be valid Python + try: + ast.parse(result) + except SyntaxError as e: + pytest.fail(f"Minified code has syntax error: {e}") + + # Should not have docstrings or comments + assert '"""Module docstring."""' not in result + assert '"""Generator class."""' not in result + assert '"""Initialize generator."""' not in result + assert "# Import comment" not in result + assert "# Blender Python API" not in result + assert "# Store resolution" not in result + + # Code should be present + assert "import bpy" in result + assert "from typing import Optional" in result + assert "class TextureGenerator:" in result + assert "def __init__(self, resolution=1024):" in result + assert "self.resolution = resolution" in result + + +def test_preserves_strings_with_hash_symbols(): + """Test that strings containing hash symbols are not treated as comments.""" + source = textwrap.dedent(''' + def create_id(text): + """Generate hash ID.""" # Function comment + # Create the ID with a hash prefix + return f"#{hash(text)}" # Hash prefix + + def parse_color(color_string): + # Check if it's a hex color + if color_string.startswith("#"): # Hex colors start with # + return color_string + return None + ''').strip() + + from build_addon import minify_python_code + result = minify_python_code(source) + + # Comments should be removed + assert "Function comment" not in result + assert "# Create the ID" not in result + assert "# Hash prefix" not in result + assert "# Check if it's a hex color" not in result + assert "# Hex colors start with #" not in result + + # String literals with # should be preserved + assert 'f"#{hash(text)}"' in result or 'f"#{hash(text)}"' in result + assert 'startswith("#")' in result or 'startswith("#")' in result + + # Code structure preserved + assert "def create_id(text):" in result + assert "def parse_color(color_string):" in result + + +def test_preserves_functionality_complex_example(): + """Test minification preserves functionality in complex real-world code.""" + source = textwrap.dedent(''' + """ + Text processing module for the addon. + + This module handles text wrapping and fitting. + """ + + import re # Regular expressions + from typing import List, Tuple # Type hints + + class TextProcessor: + """Process text for texture generation.""" + + def __init__(self, max_width: int = 100): + """ + Initialize processor. + + Args: + max_width: Maximum line width in pixels + """ + # Store configuration + self.max_width = max_width # Width limit + self._cache = {} # Results cache + + def wrap_text(self, text: str) -> List[str]: + """ + Wrap text to fit within max width. + + Args: + text: Input text to wrap + + Returns: + List of wrapped lines + """ + # Check cache first + if text in self._cache: # Cache hit + return self._cache[text] + + # Split into words + words = re.split(r'\\s+', text) # Word boundaries + lines = [] + current_line = "" + + # Process each word + for word in words: + # Check if adding word exceeds width + test_line = f"{current_line} {word}".strip() + if len(test_line) <= self.max_width: # Fits + current_line = test_line + else: # Doesn't fit + if current_line: # Save current line + lines.append(current_line) + current_line = word # Start new line + + # Add final line + if current_line: # Not empty + lines.append(current_line) + + # Cache result + self._cache[text] = lines # Store for reuse + return lines + ''').strip() + + from build_addon import minify_python_code + result = minify_python_code(source) + + # Must be valid Python + try: + compiled = compile(result, '', 'exec') + except SyntaxError as e: + pytest.fail(f"Minified code won't compile: {e}") + + # Verify it's executable (can define the class) + namespace = {} + exec(compiled, namespace) + assert 'TextProcessor' in namespace + + # Verify functionality works + processor = namespace['TextProcessor'](max_width=20) + result_lines = processor.wrap_text("hello world test") + assert isinstance(result_lines, list) + assert len(result_lines) > 0 + + # No docstrings or comments should remain + minified_lines = result.split('\n') + for line in minified_lines: + stripped = line.strip() + if stripped: + assert not stripped.startswith('#'), f"Found comment line: {line}" + assert '"""' not in line, f"Found docstring in: {line}" \ No newline at end of file diff --git a/tests/unit/test_version_differentiation.py b/tests/unit/test_version_differentiation.py index 20f2838..1dd39a3 100644 --- a/tests/unit/test_version_differentiation.py +++ b/tests/unit/test_version_differentiation.py @@ -114,6 +114,21 @@ class TestVersionDetection: assert limits["max_concurrent_operations"] == 1, \ f"Expected free version max_concurrent_operations=1, got {limits['max_concurrent_operations']}" + def test_has_text_fitting_returns_correct_value_per_version(self): + """Test that has_text_fitting() returns correct value based on VERSION_TYPE.""" + from src.utils.constants import has_text_fitting + from unittest.mock import patch + + # Test free version - need to patch ENABLED_FEATURES since it's computed at import + with patch('src.utils.constants.VERSION_TYPE', 'free'), \ + patch('src.utils.constants.ENABLED_FEATURES', ['basic', 'preview']): + assert has_text_fitting() is False + + # Test full version - need to patch ENABLED_FEATURES since it's computed at import + with patch('src.utils.constants.VERSION_TYPE', 'full'), \ + patch('src.utils.constants.ENABLED_FEATURES', ['basic', 'preview', 'text_fitting']): + assert has_text_fitting() is True + class TestRuntimeImportDetection: