[{"data":1,"prerenderedAt":8584},["ShallowReactive",2],{"tutorials-python":3,"category-items-python":987,"content-/python/package-management":988},[4,22,31,40,49,58,67,76,86,95,104,113,122,131,141,150,159,168,177,186,196,205,214,223,233,242,251,260,269,279,288,297,306,315,324,333,342,351,360,369,379,388,397,406,415,424,433,442,452,461,470,479,488,497,506,515,525,534,543,552,561,570,579,588,597,606,616,625,634,643,652,661,670,680,689,698,707,716,725,734,744,753,762,771,780,789,798,807,817,826,835,844,853,863,872,881,890,900,909,918,927,936,945,953,961,970,979],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"slug":11,"order":12,"isParent":13,"icon":14,"_type":15,"_id":16,"_source":17,"_file":18,"_stem":19,"_extension":20,"children":21,"expanded":13},"/python/getting-started","python",false,"","Getting Started","Begin your Python programming journey. Learn what Python is, how to set it up, and write your first programs. Perfect for complete beginners starting their coding adventure.","getting-started",1,true,"pi pi-folder","markdown","content:python:1.getting-started.md","content","python/1.getting-started.md","python/1.getting-started","md",[22,31,40,49,58,67],{"_path":23,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":24,"description":25,"slug":26,"parentId":5,"order":27,"_type":15,"_id":28,"_source":17,"_file":29,"_stem":30,"_extension":20},"/python/what-is-python","What is Python","Discover Python's fascinating history, design philosophy, and key features. Learn why Python has become one of the world's most popular programming languages and perfect for beginners.","what-is-python",2,"content:python:2.what-is-python.md","python/2.what-is-python.md","python/2.what-is-python",{"_path":32,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":33,"description":34,"slug":35,"parentId":5,"order":36,"_type":15,"_id":37,"_source":17,"_file":38,"_stem":39,"_extension":20},"/python/setup-python","Setup Python","Learn how to install Python on your computer and set up your development environment. Step-by-step guide for Windows, macOS, and Linux with beginner-friendly instructions.","setup-python",3,"content:python:3.setup-python.md","python/3.setup-python.md","python/3.setup-python",{"_path":41,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":42,"description":43,"slug":44,"parentId":5,"order":45,"_type":15,"_id":46,"_source":17,"_file":47,"_stem":48,"_extension":20},"/python/your-first-program","Your First Program","Write and run your first Python program! Learn the basics of Python programming with simple examples and step-by-step instructions for beginners.","your-first-program",4,"content:python:4.your-first-program.md","python/4.your-first-program.md","python/4.your-first-program",{"_path":50,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":51,"description":52,"slug":53,"parentId":5,"order":54,"_type":15,"_id":55,"_source":17,"_file":56,"_stem":57,"_extension":20},"/python/python-code-structure","Python Code Structure","Learn how Python code is organized and structured. Understand indentation, line breaks, and the basic rules that make Python programs work correctly.","python-code-structure",5,"content:python:5.python-code-structure.md","python/5.python-code-structure.md","python/5.python-code-structure",{"_path":59,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":60,"description":61,"slug":62,"parentId":5,"order":63,"_type":15,"_id":64,"_source":17,"_file":65,"_stem":66,"_extension":20},"/python/writing-comments","Writing Comments","Learn how to write effective comments in Python. Discover when and how to document your code to make it clear, maintainable, and easy to understand.","writing-comments",6,"content:python:6.writing-comments.md","python/6.writing-comments.md","python/6.writing-comments",{"_path":68,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":69,"description":70,"slug":71,"parentId":5,"order":72,"_type":15,"_id":73,"_source":17,"_file":74,"_stem":75,"_extension":20},"/python/working-with-variables","Working with Variables","Learn how to create, use, and manage variables in Python. Understand how to store data, change values, and follow naming conventions for clean, readable code.","working-with-variables",7,"content:python:7.working-with-variables.md","python/7.working-with-variables.md","python/7.working-with-variables",{"_path":77,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":78,"description":79,"slug":80,"order":81,"isParent":13,"icon":14,"_type":15,"_id":82,"_source":17,"_file":83,"_stem":84,"_extension":20,"children":85,"expanded":13},"/python/basic-data-types","Basic Data Types","Learn about Python's fundamental data types including numbers, text, and boolean values","basic-data-types",8,"content:python:8.basic-data-types.md","python/8.basic-data-types.md","python/8.basic-data-types",[86,95,104,113,122],{"_path":87,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":88,"description":89,"slug":90,"parentId":77,"order":91,"_type":15,"_id":92,"_source":17,"_file":93,"_stem":94,"_extension":20},"/python/understanding-data-types","Understanding Data Types","Learn how Python identifies different data types and why they're important for programming","understanding-data-types",9,"content:python:9.understanding-data-types.md","python/9.understanding-data-types.md","python/9.understanding-data-types",{"_path":96,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":97,"description":98,"slug":99,"parentId":77,"order":100,"_type":15,"_id":101,"_source":17,"_file":102,"_stem":103,"_extension":20},"/python/working-with-numbers","Working with Numbers","Learn about Python's numeric data types including integers and floats, and how to perform calculations","working-with-numbers",10,"content:python:10.working-with-numbers.md","python/10.working-with-numbers.md","python/10.working-with-numbers",{"_path":105,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":106,"description":107,"slug":108,"parentId":77,"order":109,"_type":15,"_id":110,"_source":17,"_file":111,"_stem":112,"_extension":20},"/python/text-and-strings","Text and Strings","Learn how to work with text data in Python using strings, including creation, manipulation, and formatting","text-and-strings",11,"content:python:11.text-and-strings.md","python/11.text-and-strings.md","python/11.text-and-strings",{"_path":114,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":115,"description":116,"slug":117,"parentId":77,"order":118,"_type":15,"_id":119,"_source":17,"_file":120,"_stem":121,"_extension":20},"/python/true-false-values","True/False Values","Learn about boolean values in Python, including True/False logic, comparison operations, and how to use booleans for decision-making in your programs","true-false-values",12,"content:python:12.true-false-values.md","python/12.true-false-values.md","python/12.true-false-values",{"_path":123,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":124,"description":125,"slug":126,"parentId":77,"order":127,"_type":15,"_id":128,"_source":17,"_file":129,"_stem":130,"_extension":20},"/python/converting-types","Converting Types","Learn how to convert between different Python data types including strings, numbers, and booleans","converting-types",13,"content:python:13.converting-types.md","python/13.converting-types.md","python/13.converting-types",{"_path":132,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":133,"description":134,"slug":135,"order":136,"isParent":13,"icon":14,"_type":15,"_id":137,"_source":17,"_file":138,"_stem":139,"_extension":20,"children":140,"expanded":13},"/python/python-operators","Python Operators","Learn about Python operators - the symbols and keywords that perform operations on data. Discover arithmetic, comparison, logical, and assignment operators with simple examples.","python-operators",14,"content:python:14.python-operators.md","python/14.python-operators.md","python/14.python-operators",[141,150,159,168,177],{"_path":142,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":143,"description":144,"slug":145,"parentId":132,"order":146,"_type":15,"_id":147,"_source":17,"_file":148,"_stem":149,"_extension":20},"/python/math-operations","Math Operations","Learn Python's arithmetic operators for mathematical calculations. Master addition, subtraction, multiplication, division, and more with practical examples.","math-operations",15,"content:python:15.math-operations.md","python/15.math-operations.md","python/15.math-operations",{"_path":151,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":152,"description":153,"slug":154,"parentId":132,"order":155,"_type":15,"_id":156,"_source":17,"_file":157,"_stem":158,"_extension":20},"/python/comparing-values","Comparing Values","Learn Python's comparison operators to compare values and make decisions. Master equality, inequality, and relational operators with practical examples.","comparing-values",16,"content:python:16.comparing-values.md","python/16.comparing-values.md","python/16.comparing-values",{"_path":160,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":161,"description":162,"slug":163,"parentId":132,"order":164,"_type":15,"_id":165,"_source":17,"_file":166,"_stem":167,"_extension":20},"/python/logic-operations","Logic Operations","Learn about Python's logical operators for combining conditions and creating complex boolean expressions","logic-operations",17,"content:python:17.logic-operations.md","python/17.logic-operations.md","python/17.logic-operations",{"_path":169,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":170,"description":171,"slug":172,"parentId":132,"order":173,"_type":15,"_id":174,"_source":17,"_file":175,"_stem":176,"_extension":20},"/python/value-assignment","Value Assignment","Learn about Python's assignment operators for efficiently updating variables and performing calculations","value-assignment",18,"content:python:18.value-assignment.md","python/18.value-assignment.md","python/18.value-assignment",{"_path":178,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":179,"description":180,"slug":181,"parentId":132,"order":182,"_type":15,"_id":183,"_source":17,"_file":184,"_stem":185,"_extension":20},"/python/operator-precedence","Operator Precedence","Learn how Python evaluates expressions with multiple operators and how to control evaluation order","operator-precedence",19,"content:python:19.operator-precedence.md","python/19.operator-precedence.md","python/19.operator-precedence",{"_path":187,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":188,"description":189,"slug":190,"order":191,"isParent":13,"icon":14,"_type":15,"_id":192,"_source":17,"_file":193,"_stem":194,"_extension":20,"children":195,"expanded":13},"/python/decision-making","Decision Making","Learn how to make decisions in your Python programs using conditional statements and control flow","decision-making",20,"content:python:20.decision-making.md","python/20.decision-making.md","python/20.decision-making",[196,205,214],{"_path":197,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":198,"description":199,"slug":200,"parentId":187,"order":201,"_type":15,"_id":202,"_source":17,"_file":203,"_stem":204,"_extension":20},"/python/if-statements","If Statements","Learn how to use if statements to make decisions and control program flow in Python","if-statements",21,"content:python:21.if-statements.md","python/21.if-statements.md","python/21.if-statements",{"_path":206,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":207,"description":208,"slug":209,"parentId":187,"order":210,"_type":15,"_id":211,"_source":17,"_file":212,"_stem":213,"_extension":20},"/python/multiple-conditions","Multiple Conditions","Learn how to handle multiple conditions using elif statements and complex conditional logic in Python","multiple-conditions",22,"content:python:22.multiple-conditions.md","python/22.multiple-conditions.md","python/22.multiple-conditions",{"_path":215,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":216,"description":217,"slug":218,"parentId":187,"order":219,"_type":15,"_id":220,"_source":17,"_file":221,"_stem":222,"_extension":20},"/python/pattern-matching","Pattern Matching","Learn how to use Python's match-case statements for powerful pattern matching and complex decision making","pattern-matching",23,"content:python:23.pattern-matching.md","python/23.pattern-matching.md","python/23.pattern-matching",{"_path":224,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":225,"description":226,"slug":227,"order":228,"isParent":13,"icon":14,"_type":15,"_id":229,"_source":17,"_file":230,"_stem":231,"_extension":20,"children":232,"expanded":13},"/python/repetition-and-loops","Python Loops","Learn how to use loops to repeat code efficiently and handle repetitive tasks in Python","repetition-and-loops",24,"content:python:24.repetition-and-loops.md","python/24.repetition-and-loops.md","python/24.repetition-and-loops",[233,242,251,260],{"_path":234,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":235,"description":236,"slug":237,"parentId":224,"order":238,"_type":15,"_id":239,"_source":17,"_file":240,"_stem":241,"_extension":20},"/python/while-loops","While Loops","Learn how to use while loops for condition-based repetition and create loops that run until specific conditions are met","while-loops",25,"content:python:25.while-loops.md","python/25.while-loops.md","python/25.while-loops",{"_path":243,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":244,"description":245,"slug":246,"parentId":224,"order":247,"_type":15,"_id":248,"_source":17,"_file":249,"_stem":250,"_extension":20},"/python/for-loops","For Loops","Learn how to use for loops to iterate through sequences, collections, and ranges efficiently in Python","for-loops",26,"content:python:26.for-loops.md","python/26.for-loops.md","python/26.for-loops",{"_path":252,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":253,"description":254,"slug":255,"parentId":224,"order":256,"_type":15,"_id":257,"_source":17,"_file":258,"_stem":259,"_extension":20},"/python/loop-control","Loop Control","Master advanced loop control techniques including break, continue, and else clauses for sophisticated iteration patterns","loop-control",27,"content:python:27.loop-control.md","python/27.loop-control.md","python/27.loop-control",{"_path":261,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":262,"description":263,"slug":264,"parentId":224,"order":265,"_type":15,"_id":266,"_source":17,"_file":267,"_stem":268,"_extension":20},"/python/nested-loops","Nested Loops","Learn how to use nested loops to process multi-dimensional data, create patterns, and handle complex iteration scenarios","nested-loops",28,"content:python:28.nested-loops.md","python/28.nested-loops.md","python/28.nested-loops",{"_path":270,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":271,"description":272,"slug":273,"order":274,"isParent":13,"icon":14,"_type":15,"_id":275,"_source":17,"_file":276,"_stem":277,"_extension":20,"children":278,"expanded":13},"/python/python-lists","Python Lists","Learn about Python lists, one of the most important and versatile data structures for storing and organizing collections of data","python-lists",29,"content:python:29.python-lists.md","python/29.python-lists.md","python/29.python-lists",[279,288,297,306,315,324,333,342,351,360],{"_path":280,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":281,"description":282,"slug":283,"parentId":270,"order":284,"_type":15,"_id":285,"_source":17,"_file":286,"_stem":287,"_extension":20},"/python/creating-lists","Creating Lists","Learn different methods to create and initialize Python lists, from simple literals to advanced techniques","creating-lists",30,"content:python:30.creating-lists.md","python/30.creating-lists.md","python/30.creating-lists",{"_path":289,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":290,"description":291,"slug":292,"parentId":270,"order":293,"_type":15,"_id":294,"_source":17,"_file":295,"_stem":296,"_extension":20},"/python/reading-list-data","Reading List Data","Master techniques for accessing and retrieving data from Python lists using indexing, slicing, and built-in methods","reading-list-data",31,"content:python:31.reading-list-data.md","python/31.reading-list-data.md","python/31.reading-list-data",{"_path":298,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":299,"description":300,"slug":301,"parentId":270,"order":302,"_type":15,"_id":303,"_source":17,"_file":304,"_stem":305,"_extension":20},"/python/modifying-lists","Modifying Lists","Learn how to change, update, and modify existing elements in Python lists using indexing and various methods","modifying-lists",32,"content:python:32.modifying-lists.md","python/32.modifying-lists.md","python/32.modifying-lists",{"_path":307,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":308,"description":309,"slug":310,"parentId":270,"order":311,"_type":15,"_id":312,"_source":17,"_file":313,"_stem":314,"_extension":20},"/python/adding-to-lists","Adding to Lists","Learn various methods to add elements to Python lists including append, insert, extend, and concatenation techniques","adding-to-lists",33,"content:python:33.adding-to-lists.md","python/33.adding-to-lists.md","python/33.adding-to-lists",{"_path":316,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":317,"description":318,"slug":319,"parentId":270,"order":320,"_type":15,"_id":321,"_source":17,"_file":322,"_stem":323,"_extension":20},"/python/removing-from-lists","Removing from Lists","Learn different methods to remove and delete elements from Python lists including remove, pop, del, and clear","removing-from-lists",34,"content:python:34.removing-from-lists.md","python/34.removing-from-lists.md","python/34.removing-from-lists",{"_path":325,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":326,"description":327,"slug":328,"parentId":270,"order":329,"_type":15,"_id":330,"_source":17,"_file":331,"_stem":332,"_extension":20},"/python/looping-through-lists","Looping Through Lists","Learn different ways to iterate through Python lists using for loops, while loops, enumerate, and other iteration techniques","looping-through-lists",35,"content:python:35.looping-through-lists.md","python/35.looping-through-lists.md","python/35.looping-through-lists",{"_path":334,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":335,"description":336,"slug":337,"parentId":270,"order":338,"_type":15,"_id":339,"_source":17,"_file":340,"_stem":341,"_extension":20},"/python/list-shortcuts","List Shortcuts","Learn powerful Python list shortcuts including list comprehensions, slicing tricks, and built-in functions for efficient list operations","list-shortcuts",36,"content:python:36.list-shortcuts.md","python/36.list-shortcuts.md","python/36.list-shortcuts",{"_path":343,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":344,"description":345,"slug":346,"parentId":270,"order":347,"_type":15,"_id":348,"_source":17,"_file":349,"_stem":350,"_extension":20},"/python/organizing-lists","Organizing Lists","Learn how to sort, reverse, and organize Python lists using built-in methods and custom sorting techniques","organizing-lists",37,"content:python:37.organizing-lists.md","python/37.organizing-lists.md","python/37.organizing-lists",{"_path":352,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":353,"description":354,"slug":355,"parentId":270,"order":356,"_type":15,"_id":357,"_source":17,"_file":358,"_stem":359,"_extension":20},"/python/combining-lists","Combining Lists","Learn various techniques to combine, merge, and join Python lists including concatenation, zipping, and advanced merging strategies","combining-lists",38,"content:python:38.combining-lists.md","python/38.combining-lists.md","python/38.combining-lists",{"_path":361,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":362,"description":363,"slug":364,"parentId":270,"order":365,"_type":15,"_id":366,"_source":17,"_file":367,"_stem":368,"_extension":20},"/python/essential-list-tools","Essential List Tools","Master powerful built-in functions and advanced techniques for efficient Python list manipulation and data processing","essential-list-tools",39,"content:python:39.essential-list-tools.md","python/39.essential-list-tools.md","python/39.essential-list-tools",{"_path":370,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":371,"description":372,"slug":373,"order":374,"isParent":13,"icon":14,"_type":15,"_id":375,"_source":17,"_file":376,"_stem":377,"_extension":20,"children":378,"expanded":13},"/python/python-tuples","Python Tuples","Master Python tuples - immutable sequences perfect for storing related data that shouldn't change. Learn creation, access, and manipulation techniques.","python-tuples",40,"content:python:40.python-tuples.md","python/40.python-tuples.md","python/40.python-tuples",[379,388,397,406,415,424,433],{"_path":380,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":381,"description":382,"slug":383,"parentId":370,"order":384,"_type":15,"_id":385,"_source":17,"_file":386,"_stem":387,"_extension":20},"/python/creating-tuples","Creating Tuples","Learn different ways to create Python tuples, from basic syntax to advanced techniques. Master tuple initialization and understand when to use tuples.","creating-tuples",41,"content:python:41.creating-tuples.md","python/41.creating-tuples.md","python/41.creating-tuples",{"_path":389,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":390,"description":391,"slug":392,"parentId":370,"order":393,"_type":15,"_id":394,"_source":17,"_file":395,"_stem":396,"_extension":20},"/python/reading-tuple-data","Reading Tuple Data","Master accessing tuple elements through indexing, slicing, and searching. Learn efficient patterns for reading and working with tuple data.","reading-tuple-data",42,"content:python:42.reading-tuple-data.md","python/42.reading-tuple-data.md","python/42.reading-tuple-data",{"_path":398,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":399,"description":400,"slug":401,"parentId":370,"order":402,"_type":15,"_id":403,"_source":17,"_file":404,"_stem":405,"_extension":20},"/python/changing-tuples","Changing Tuples","Understand tuple immutability and learn techniques for working with unchangeable data. Master creating modified tuple versions and handling immutable constraints.","changing-tuples",43,"content:python:43.changing-tuples.md","python/43.changing-tuples.md","python/43.changing-tuples",{"_path":407,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":408,"description":409,"slug":410,"parentId":370,"order":411,"_type":15,"_id":412,"_source":17,"_file":413,"_stem":414,"_extension":20},"/python/tuple-unpacking","Tuple Unpacking","Master tuple unpacking for elegant variable assignment, function returns, and data extraction. Learn Python's powerful unpacking syntax and patterns.","tuple-unpacking",44,"content:python:44.tuple-unpacking.md","python/44.tuple-unpacking.md","python/44.tuple-unpacking",{"_path":416,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":417,"description":418,"slug":419,"parentId":370,"order":420,"_type":15,"_id":421,"_source":17,"_file":422,"_stem":423,"_extension":20},"/python/iterating-tuples","Iterating Tuples","Master tuple iteration techniques for processing sequence data. Learn basic loops, enumerate, nested iteration, and advanced patterns for efficient data processing.","iterating-tuples",45,"content:python:45.iterating-tuples.md","python/45.iterating-tuples.md","python/45.iterating-tuples",{"_path":425,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":426,"description":427,"slug":428,"parentId":370,"order":429,"_type":15,"_id":430,"_source":17,"_file":431,"_stem":432,"_extension":20},"/python/merging-tuples","Merging Tuples","Learn techniques for combining and merging tuples to create larger data structures. Master concatenation, joining multiple tuples, and advanced merging patterns.","merging-tuples",46,"content:python:46.merging-tuples.md","python/46.merging-tuples.md","python/46.merging-tuples",{"_path":434,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":435,"description":436,"slug":437,"parentId":370,"order":438,"_type":15,"_id":439,"_source":17,"_file":440,"_stem":441,"_extension":20},"/python/tuple-operations","Tuple Operations","Master comprehensive tuple operations including built-in functions, mathematical operations, comparisons, and advanced techniques for efficient tuple manipulation.","tuple-operations",47,"content:python:47.tuple-operations.md","python/47.tuple-operations.md","python/47.tuple-operations",{"_path":443,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":444,"description":445,"slug":446,"order":447,"isParent":13,"icon":14,"_type":15,"_id":448,"_source":17,"_file":449,"_stem":450,"_extension":20,"children":451,"expanded":13},"/python/python-sets","Python Sets","Discover Python sets - unique collections that automatically eliminate duplicates and provide powerful mathematical operations for data filtering and analysis.","python-sets",48,"content:python:48.python-sets.md","python/48.python-sets.md","python/48.python-sets",[452,461,470,479,488,497,506],{"_path":453,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":454,"description":455,"slug":456,"parentId":443,"order":457,"_type":15,"_id":458,"_source":17,"_file":459,"_stem":460,"_extension":20},"/python/creating-sets","Creating Sets","Learn multiple ways to create sets in Python including literal syntax, set() function, and set comprehensions. Master set creation from different data sources.","creating-sets",49,"content:python:49.creating-sets.md","python/49.creating-sets.md","python/49.creating-sets",{"_path":462,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":463,"description":464,"slug":465,"parentId":443,"order":466,"_type":15,"_id":467,"_source":17,"_file":468,"_stem":469,"_extension":20},"/python/reading-set-data","Reading Set Data","Learn how to access and examine set data in Python including membership testing, iteration, size checking, and converting sets to other data types.","reading-set-data",50,"content:python:50.reading-set-data.md","python/50.reading-set-data.md","python/50.reading-set-data",{"_path":471,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":472,"description":473,"slug":474,"parentId":443,"order":475,"_type":15,"_id":476,"_source":17,"_file":477,"_stem":478,"_extension":20},"/python/adding-to-sets","Adding to Sets","Learn how to add elements to sets in Python using add(), update(), and union operations. Master growing sets dynamically with single items and multiple elements.","adding-to-sets",51,"content:python:51.adding-to-sets.md","python/51.adding-to-sets.md","python/51.adding-to-sets",{"_path":480,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":481,"description":482,"slug":483,"parentId":443,"order":484,"_type":15,"_id":485,"_source":17,"_file":486,"_stem":487,"_extension":20},"/python/removing-from-sets","Removing from Sets","Learn how to remove elements from Python sets using different methods like remove(), discard(), pop(), and clear()","removing-from-sets",52,"content:python:52.removing-from-sets.md","python/52.removing-from-sets.md","python/52.removing-from-sets",{"_path":489,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":490,"description":491,"slug":492,"parentId":443,"order":493,"_type":15,"_id":494,"_source":17,"_file":495,"_stem":496,"_extension":20},"/python/iterating-sets","Iterating Sets","Learn different ways to iterate through Python sets using for loops, comprehensions, and built-in functions","iterating-sets",53,"content:python:53.iterating-sets.md","python/53.iterating-sets.md","python/53.iterating-sets",{"_path":498,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":499,"description":500,"slug":501,"parentId":443,"order":502,"_type":15,"_id":503,"_source":17,"_file":504,"_stem":505,"_extension":20},"/python/combining-sets","Combining Sets","Learn how to combine Python sets using union, intersection, difference, and other set operations","combining-sets",54,"content:python:54.combining-sets.md","python/54.combining-sets.md","python/54.combining-sets",{"_path":507,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":508,"description":509,"slug":510,"parentId":443,"order":511,"_type":15,"_id":512,"_source":17,"_file":513,"_stem":514,"_extension":20},"/python/set-operations","Set Operations","Learn advanced Python set operations including comparisons, subsets, supersets, and mathematical set relationships","set-operations",55,"content:python:55.set-operations.md","python/55.set-operations.md","python/55.set-operations",{"_path":516,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":517,"description":518,"slug":519,"order":520,"isParent":13,"icon":14,"_type":15,"_id":521,"_source":17,"_file":522,"_stem":523,"_extension":20,"children":524,"expanded":13},"/python/python-dictionaries","Python Dictionaries","Learn about Python dictionaries - key-value data structures for storing and organizing related information","python-dictionaries",56,"content:python:56.python-dictionaries.md","python/56.python-dictionaries.md","python/56.python-dictionaries",[525,534,543,552,561,570,579,588,597],{"_path":526,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":527,"description":528,"slug":529,"parentId":516,"order":530,"_type":15,"_id":531,"_source":17,"_file":532,"_stem":533,"_extension":20},"/python/creating-dictionaries","Creating Dictionaries","Learn different methods to create Python dictionaries using literals, constructors, and comprehensions","creating-dictionaries",57,"content:python:57.creating-dictionaries.md","python/57.creating-dictionaries.md","python/57.creating-dictionaries",{"_path":535,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":536,"description":537,"slug":538,"parentId":516,"order":539,"_type":15,"_id":540,"_source":17,"_file":541,"_stem":542,"_extension":20},"/python/getting-dictionary-values","Getting Dictionary Values","Learn safe and efficient methods to retrieve data from Python dictionaries using various access techniques","getting-dictionary-values",58,"content:python:58.getting-dictionary-values.md","python/58.getting-dictionary-values.md","python/58.getting-dictionary-values",{"_path":544,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":545,"description":546,"slug":547,"parentId":516,"order":548,"_type":15,"_id":549,"_source":17,"_file":550,"_stem":551,"_extension":20},"/python/updating-dictionaries","Updating Dictionaries","Learn how to modify and maintain Python dictionary data using various update methods and techniques","updating-dictionaries",59,"content:python:59.updating-dictionaries.md","python/59.updating-dictionaries.md","python/59.updating-dictionaries",{"_path":553,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":554,"description":555,"slug":556,"parentId":516,"order":557,"_type":15,"_id":558,"_source":17,"_file":559,"_stem":560,"_extension":20},"/python/adding-dictionary-items","Adding Dictionary Items","Learn effective techniques for adding new items to Python dictionaries with various methods and best practices","adding-dictionary-items",60,"content:python:60.adding-dictionary-items.md","python/60.adding-dictionary-items.md","python/60.adding-dictionary-items",{"_path":562,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":563,"description":564,"slug":565,"parentId":516,"order":566,"_type":15,"_id":567,"_source":17,"_file":568,"_stem":569,"_extension":20},"/python/deleting-dictionary-items","Deleting Dictionary Items","Master safe and efficient techniques for removing items from Python dictionaries with various methods and error handling","deleting-dictionary-items",61,"content:python:61.deleting-dictionary-items.md","python/61.deleting-dictionary-items.md","python/61.deleting-dictionary-items",{"_path":571,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":572,"description":573,"slug":574,"parentId":516,"order":575,"_type":15,"_id":576,"_source":17,"_file":577,"_stem":578,"_extension":20},"/python/looping-dictionaries","Looping Dictionaries","Learn efficient techniques for iterating through Python dictionaries using keys, values, and items","looping-dictionaries",62,"content:python:62.looping-dictionaries.md","python/62.looping-dictionaries.md","python/62.looping-dictionaries",{"_path":580,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":581,"description":582,"slug":583,"parentId":516,"order":584,"_type":15,"_id":585,"_source":17,"_file":586,"_stem":587,"_extension":20},"/python/dictionary-copies","Dictionary Copies","Learn safe techniques for duplicating Python dictionaries using shallow and deep copy methods","dictionary-copies",63,"content:python:63.dictionary-copies.md","python/63.dictionary-copies.md","python/63.dictionary-copies",{"_path":589,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":590,"description":591,"slug":592,"parentId":516,"order":593,"_type":15,"_id":594,"_source":17,"_file":595,"_stem":596,"_extension":20},"/python/multi-level-dictionaries","Multi-level Dictionaries","Master working with nested Python dictionaries for complex data structures and hierarchical information","multi-level-dictionaries",64,"content:python:64.multi-level-dictionaries.md","python/64.multi-level-dictionaries.md","python/64.multi-level-dictionaries",{"_path":598,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":599,"description":600,"slug":601,"parentId":516,"order":602,"_type":15,"_id":603,"_source":17,"_file":604,"_stem":605,"_extension":20},"/python/dictionary-tools","Dictionary Tools","Explore powerful built-in functions and advanced techniques for efficient Python dictionary manipulation and analysis","dictionary-tools",65,"content:python:65.dictionary-tools.md","python/65.dictionary-tools.md","python/65.dictionary-tools",{"_path":607,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":608,"description":609,"slug":610,"order":611,"isParent":13,"icon":14,"_type":15,"_id":612,"_source":17,"_file":613,"_stem":614,"_extension":20,"children":615,"expanded":13},"/python/python-functions","Python Functions","Learn how to create and use Python functions to organize code into reusable, modular components that make programs more efficient and maintainable","python-functions",66,"content:python:66.python-functions.md","python/66.python-functions.md","python/66.python-functions",[616,625,634,643,652,661],{"_path":617,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":618,"description":619,"slug":620,"parentId":607,"order":621,"_type":15,"_id":622,"_source":17,"_file":623,"_stem":624,"_extension":20},"/python/function-basics","Function Basics","Learn the fundamentals of creating and using Python functions to organize code into reusable, modular components","function-basics",67,"content:python:67.function-basics.md","python/67.function-basics.md","python/67.function-basics",{"_path":626,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":627,"description":628,"slug":629,"parentId":607,"order":630,"_type":15,"_id":631,"_source":17,"_file":632,"_stem":633,"_extension":20},"/python/function-parameters","Function Parameters","Master different types of Python function parameters including positional, keyword, default, and variable-length arguments","function-parameters",68,"content:python:68.function-parameters.md","python/68.function-parameters.md","python/68.function-parameters",{"_path":635,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":636,"description":637,"slug":638,"parentId":607,"order":639,"_type":15,"_id":640,"_source":17,"_file":641,"_stem":642,"_extension":20},"/python/returning-values","Returning Values","Learn different ways Python functions return data including single values, multiple values, and conditional returns","returning-values",69,"content:python:69.returning-values.md","python/69.returning-values.md","python/69.returning-values",{"_path":644,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":645,"description":646,"slug":647,"parentId":607,"order":648,"_type":15,"_id":649,"_source":17,"_file":650,"_stem":651,"_extension":20},"/python/variable-scope","Variable Scope","Understand Python variable scope including local, global, and nonlocal variables and how they affect function behavior","variable-scope",70,"content:python:70.variable-scope.md","python/70.variable-scope.md","python/70.variable-scope",{"_path":653,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":654,"description":655,"slug":656,"parentId":607,"order":657,"_type":15,"_id":658,"_source":17,"_file":659,"_stem":660,"_extension":20},"/python/anonymous-functions","Anonymous Functions","Learn to create and use Python lambda functions for concise, inline function definitions and functional programming patterns","anonymous-functions",71,"content:python:71.anonymous-functions.md","python/71.anonymous-functions.md","python/71.anonymous-functions",{"_path":662,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":663,"description":664,"slug":665,"parentId":607,"order":666,"_type":15,"_id":667,"_source":17,"_file":668,"_stem":669,"_extension":20},"/python/function-recursion","Function Recursion","Master recursive functions in Python by learning how functions can call themselves to solve complex problems with elegant, mathematical solutions","function-recursion",72,"content:python:72.function-recursion.md","python/72.function-recursion.md","python/72.function-recursion",{"_path":671,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":672,"description":673,"slug":674,"order":675,"isParent":13,"icon":14,"_type":15,"_id":676,"_source":17,"_file":677,"_stem":678,"_extension":20,"children":679,"expanded":13},"/python/object-programming","Object Programming","Learn object-oriented programming (OOP) in Python - create classes, objects, and methods to build organized, reusable code","object-programming",73,"content:python:73.object-programming.md","python/73.object-programming.md","python/73.object-programming",[680,689,698,707,716,725],{"_path":681,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":682,"description":683,"slug":684,"parentId":671,"order":685,"_type":15,"_id":686,"_source":17,"_file":687,"_stem":688,"_extension":20},"/python/classes-and-objects","Classes and Objects","Learn to create Python classes and objects - the foundation of object-oriented programming for building reusable, organized code","classes-and-objects",74,"content:python:74.classes-and-objects.md","python/74.classes-and-objects.md","python/74.classes-and-objects",{"_path":690,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":691,"description":692,"slug":693,"parentId":671,"order":694,"_type":15,"_id":695,"_source":17,"_file":696,"_stem":697,"_extension":20},"/python/object-methods","Object Methods","Master object methods in Python - learn to define behaviors, work with parameters, and create interactive objects that respond to actions","object-methods",75,"content:python:75.object-methods.md","python/75.object-methods.md","python/75.object-methods",{"_path":699,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":700,"description":701,"slug":702,"parentId":671,"order":703,"_type":15,"_id":704,"_source":17,"_file":705,"_stem":706,"_extension":20},"/python/class-inheritance","Class Inheritance","Learn Python class inheritance - create specialized classes that build upon existing functionality while adding new features and behaviors","class-inheritance",76,"content:python:76.class-inheritance.md","python/76.class-inheritance.md","python/76.class-inheritance",{"_path":708,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":709,"description":710,"slug":711,"parentId":671,"order":712,"_type":15,"_id":713,"_source":17,"_file":714,"_stem":715,"_extension":20},"/python/method-overriding","Method Overriding","Master method overriding in Python - learn to customize inherited methods, use super(), and create specialized behaviors while maintaining inheritance benefits","method-overriding",77,"content:python:77.method-overriding.md","python/77.method-overriding.md","python/77.method-overriding",{"_path":717,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":718,"description":719,"slug":720,"parentId":671,"order":721,"_type":15,"_id":722,"_source":17,"_file":723,"_stem":724,"_extension":20},"/python/variable-visibility","Variable Visibility","Master Python variable visibility - learn public, protected, and private attributes to control access and create well-encapsulated classes","variable-visibility",78,"content:python:78.variable-visibility.md","python/78.variable-visibility.md","python/78.variable-visibility",{"_path":726,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":727,"description":728,"slug":729,"parentId":671,"order":730,"_type":15,"_id":731,"_source":17,"_file":732,"_stem":733,"_extension":20},"/python/special-methods","Special Methods","Master Python special methods (magic methods) - learn to implement __str__, __len__, __eq__ and more to make your classes work seamlessly with Python's built-in functions","special-methods",79,"content:python:79.special-methods.md","python/79.special-methods.md","python/79.special-methods",{"_path":735,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":736,"description":737,"slug":738,"order":739,"isParent":13,"icon":14,"_type":15,"_id":740,"_source":17,"_file":741,"_stem":742,"_extension":20,"children":743,"expanded":13},"/python/advanced-concepts","Advanced Concepts","Master advanced Python programming concepts - work with dates, mathematics, JSON data, pattern matching, and more sophisticated programming techniques","advanced-concepts",80,"content:python:80.advanced-concepts.md","python/80.advanced-concepts.md","python/80.advanced-concepts",[744,753,762,771,780,789,798],{"_path":745,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":746,"description":747,"slug":748,"parentId":735,"order":749,"_type":15,"_id":750,"_source":17,"_file":751,"_stem":752,"_extension":20},"/python/working-with-dates","Working with Dates","Master Python date and time handling - work with datetime objects, format dates, calculate durations, and build time-aware applications","working-with-dates",81,"content:python:81.working-with-dates.md","python/81.working-with-dates.md","python/81.working-with-dates",{"_path":754,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":755,"description":756,"slug":757,"parentId":735,"order":758,"_type":15,"_id":759,"_source":17,"_file":760,"_stem":761,"_extension":20},"/python/mathematical-operations","Mathematical Operations","Master Python mathematical computing - use math functions, perform statistical calculations, and implement scientific computing for data analysis and problem-solving","mathematical-operations",82,"content:python:82.mathematical-operations.md","python/82.mathematical-operations.md","python/82.mathematical-operations",{"_path":763,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":764,"description":765,"slug":766,"parentId":735,"order":767,"_type":15,"_id":768,"_source":17,"_file":769,"_stem":770,"_extension":20},"/python/json-data","JSON Data","Master JSON data handling in Python - serialize and deserialize data, work with APIs, manage configuration files, and exchange data between applications","json-data",83,"content:python:83.json-data.md","python/83.json-data.md","python/83.json-data",{"_path":772,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":773,"description":774,"slug":775,"parentId":735,"order":776,"_type":15,"_id":777,"_source":17,"_file":778,"_stem":779,"_extension":20},"/python/package-management","Package Management","Master Python package management with pip and virtual environments - install libraries, manage dependencies, create isolated environments, and distribute packages professionally","package-management",85,"content:python:85.package-management.md","python/85.package-management.md","python/85.package-management",{"_path":781,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":782,"description":783,"slug":784,"parentId":735,"order":785,"_type":15,"_id":786,"_source":17,"_file":787,"_stem":788,"_extension":20},"/python/error-handling","Error Handling","Master Python error handling with try/except blocks, exception types, custom exceptions, debugging techniques, and best practices for robust application development","error-handling",86,"content:python:86.error-handling.md","python/86.error-handling.md","python/86.error-handling",{"_path":790,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":791,"description":792,"slug":793,"parentId":735,"order":794,"_type":15,"_id":795,"_source":17,"_file":796,"_stem":797,"_extension":20},"/python/getting-user-input","Getting User Input","Master user input handling in Python with input validation, data type conversion, interactive programs, and command-line interfaces for engaging user experiences","getting-user-input",87,"content:python:87.getting-user-input.md","python/87.getting-user-input.md","python/87.getting-user-input",{"_path":799,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":800,"description":801,"slug":802,"parentId":735,"order":803,"_type":15,"_id":804,"_source":17,"_file":805,"_stem":806,"_extension":20},"/python/text-formatting","Text Formatting","Master Python text formatting with f-strings, format methods, alignment, number formatting, and advanced techniques for professional, readable output","text-formatting",88,"content:python:88.text-formatting.md","python/88.text-formatting.md","python/88.text-formatting",{"_path":808,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":809,"description":810,"slug":811,"order":812,"isParent":13,"icon":14,"_type":15,"_id":813,"_source":17,"_file":814,"_stem":815,"_extension":20,"children":816},"/python/file-operations","File Operations","Master Python file handling with reading, writing, and managing files for data persistence and real-world applications","file-operations",89,"content:python:89.file-operations.md","python/89.file-operations.md","python/89.file-operations",[817,826,835,844],{"_path":818,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":819,"description":820,"slug":821,"parentId":808,"order":822,"_type":15,"_id":823,"_source":17,"_file":824,"_stem":825,"_extension":20},"/python/file-basics","File Basics","Learn fundamental Python file operations including opening files, understanding file modes, using context managers, and basic file handling concepts","file-basics",90,"content:python:90.file-basics.md","python/90.file-basics.md","python/90.file-basics",{"_path":827,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":828,"description":829,"slug":830,"parentId":808,"order":831,"_type":15,"_id":832,"_source":17,"_file":833,"_stem":834,"_extension":20},"/python/reading-files","Reading Files","Master Python file reading techniques including reading entire files, line-by-line processing, and handling different file formats for efficient data processing","reading-files",91,"content:python:91.reading-files.md","python/91.reading-files.md","python/91.reading-files",{"_path":836,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":837,"description":838,"slug":839,"parentId":808,"order":840,"_type":15,"_id":841,"_source":17,"_file":842,"_stem":843,"_extension":20},"/python/writing-files","Writing Files","Learn Python file writing techniques including creating new files, appending content, updating existing files, and saving different data formats safely","writing-files",92,"content:python:92.writing-files.md","python/92.writing-files.md","python/92.writing-files",{"_path":845,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":846,"description":847,"slug":848,"parentId":808,"order":849,"_type":15,"_id":850,"_source":17,"_file":851,"_stem":852,"_extension":20},"/python/file-management","File Management","Learn Python file management techniques including checking file properties, organizing files, directory operations, and implementing file system maintenance tasks","file-management",93,"content:python:93.file-management.md","python/93.file-management.md","python/93.file-management",{"_path":854,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":855,"description":856,"slug":857,"order":858,"isParent":13,"icon":14,"_type":15,"_id":859,"_source":17,"_file":860,"_stem":861,"_extension":20,"children":862},"/python/code-organization","Code Organization","Master Python code organization with modules, built-in libraries, and path management for creating maintainable and reusable applications","code-organization",94,"content:python:94.code-organization.md","python/94.code-organization.md","python/94.code-organization",[863,872,881],{"_path":864,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":865,"description":866,"slug":867,"parentId":854,"order":868,"_type":15,"_id":869,"_source":17,"_file":870,"_stem":871,"_extension":20},"/python/creating-modules","Creating Modules","Learn how to create custom Python modules, organize functions and classes, write reusable code components, and design effective module structures","creating-modules",95,"content:python:95.creating-modules.md","python/95.creating-modules.md","python/95.creating-modules",{"_path":873,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":874,"description":875,"slug":876,"parentId":854,"order":877,"_type":15,"_id":878,"_source":17,"_file":879,"_stem":880,"_extension":20},"/python/using-built-in-modules","Using Built-in Modules","Discover Python's extensive standard library and learn to effectively use built-in modules for common programming tasks, data processing, and system operations","using-built-in-modules",96,"content:python:96.using-built-in-modules.md","python/96.using-built-in-modules.md","python/96.using-built-in-modules",{"_path":882,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":883,"description":884,"slug":885,"parentId":854,"order":886,"_type":15,"_id":887,"_source":17,"_file":888,"_stem":889,"_extension":20},"/python/module-paths","Module Paths","Understand Python's module search system, manage import paths, work with packages, and organize larger projects with proper module path management","module-paths",97,"content:python:97.module-paths.md","python/97.module-paths.md","python/97.module-paths",{"_path":891,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":892,"description":893,"slug":894,"order":895,"isParent":13,"icon":14,"_type":15,"_id":896,"_source":17,"_file":897,"_stem":898,"_extension":20,"children":899,"expanded":13},"/python/reference-materials","Reference Materials","Comprehensive Python reference materials including reserved words, built-in functions, and operation guides for quick lookup and development support","reference-materials",98,"content:python:98.reference-materials.md","python/98.reference-materials.md","python/98.reference-materials",[900,909,918,927,936,945,953,961,970],{"_path":901,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":902,"description":903,"slug":904,"parentId":891,"order":905,"_type":15,"_id":906,"_source":17,"_file":907,"_stem":908,"_extension":20},"/python/reserved-words","Reserved Words","Complete reference of Python keywords and reserved words with descriptions, usage examples, and syntax guidelines","reserved-words",99,"content:python:99.reserved-words.md","python/99.reserved-words.md","python/99.reserved-words",{"_path":910,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":911,"description":912,"slug":913,"parentId":891,"order":914,"_type":15,"_id":915,"_source":17,"_file":916,"_stem":917,"_extension":20},"/python/built-in-functions","Built-in Functions","Comprehensive reference of Python's built-in functions with parameters, return values, and practical usage examples","built-in-functions",100,"content:python:100.built-in-functions.md","python/100.built-in-functions.md","python/100.built-in-functions",{"_path":919,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":920,"description":921,"slug":922,"parentId":891,"order":923,"_type":15,"_id":924,"_source":17,"_file":925,"_stem":926,"_extension":20},"/python/string-operations","String Operations","Complete reference of Python string methods, operations, and formatting techniques with examples and use cases","string-operations",101,"content:python:101.string-operations.md","python/101.string-operations.md","python/101.string-operations",{"_path":928,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":929,"description":930,"slug":931,"parentId":891,"order":932,"_type":15,"_id":933,"_source":17,"_file":934,"_stem":935,"_extension":20},"/python/list-operations","List Operations","Complete reference of Python list methods, operations, and manipulation techniques with examples and performance notes","list-operations",102,"content:python:102.list-operations.md","python/102.list-operations.md","python/102.list-operations",{"_path":937,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":938,"description":939,"slug":940,"parentId":891,"order":941,"_type":15,"_id":942,"_source":17,"_file":943,"_stem":944,"_extension":20},"/python/dictionary-operations","Dictionary Operations","Complete reference of Python dictionary methods, operations, and manipulation techniques with examples and use cases","dictionary-operations",103,"content:python:103.dictionary-operations.md","python/103.dictionary-operations.md","python/103.dictionary-operations",{"_path":946,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":435,"description":947,"slug":948,"parentId":891,"order":949,"_type":15,"_id":950,"_source":17,"_file":951,"_stem":952,"_extension":20},"/python/tuple-methods","Complete reference of Python tuple operations, methods, and techniques with examples and use cases","tuple-methods",104,"content:python:104.tuple-methods.md","python/104.tuple-methods.md","python/104.tuple-methods",{"_path":954,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":508,"description":955,"slug":956,"parentId":891,"order":957,"_type":15,"_id":958,"_source":17,"_file":959,"_stem":960,"_extension":20},"/python/set-methods","Complete reference of Python set operations, methods, and mathematical set operations with examples and use cases","set-methods",105,"content:python:105.set-methods.md","python/105.set-methods.md","python/105.set-methods",{"_path":962,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":963,"description":964,"slug":965,"parentId":891,"order":966,"_type":15,"_id":967,"_source":17,"_file":968,"_stem":969,"_extension":20},"/python/file-operations-reference","File Operations Reference","Complete reference of Python file operations, modes, methods, and file handling techniques with examples","file-operations-reference",106,"content:python:106.file-operations-reference.md","python/106.file-operations-reference.md","python/106.file-operations-reference",{"_path":971,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":972,"description":973,"slug":974,"parentId":891,"order":975,"_type":15,"_id":976,"_source":17,"_file":977,"_stem":978,"_extension":20},"/python/error-types","Error Types","Complete reference of Python exception types, error handling patterns, and debugging techniques with examples","error-types",107,"content:python:107.error-types.md","python/107.error-types.md","python/107.error-types",{"_path":980,"_dir":8,"_draft":7,"_partial":7,"_locale":8,"title":981,"description":10,"slug":982,"order":983,"icon":14,"_type":15,"_id":984,"_source":17,"_file":985,"_stem":986,"_extension":20},"/python","Introduction","python-tutorial",0,"content:python:index.md","python/index.md","python/index",[771],{"_path":772,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":773,"description":774,"slug":775,"parentId":735,"order":776,"body":989,"_type":15,"_id":777,"_source":17,"_file":778,"_stem":779,"_extension":20},{"type":990,"children":991,"toc":8563},"root",[992,1000,1015,1020,1256,1263,1268,1542,1549,1554,2484,2490,2495,2983,2989,2994,3000,3005,3834,3840,3845,4206,4212,4218,4223,4645,4651,4656,5520,5526,5532,5537,6123,6253,6258,6861,6867,8223,8236,8242,8247,8517,8523,8528,8535,8541,8546,8557],{"type":993,"tag":994,"props":995,"children":996},"element","h1",{"id":775},[997],{"type":998,"value":999},"text","📦 Package Management",{"type":993,"tag":1001,"props":1002,"children":1003},"p",{},[1004,1006,1013],{"type":998,"value":1005},"Python package management enables you to install, update, and manage external libraries and dependencies in your projects. Using tools like ",{"type":993,"tag":1007,"props":1008,"children":1010},"code",{"className":1009},[],[1011],{"type":998,"value":1012},"pip",{"type":998,"value":1014}," and virtual environments, you can create isolated, reproducible development environments that ensure consistent behavior across different systems.",{"type":993,"tag":1001,"props":1016,"children":1017},{},[1018],{"type":998,"value":1019},"Think of package management as your project's supply chain - it helps you acquire, organize, and maintain all the external tools and libraries your application needs to function properly.",{"type":993,"tag":1021,"props":1022,"children":1023},"code-try",{},[1024],{"type":993,"tag":1025,"props":1026,"children":1029},"pre",{"className":1027,"code":1028,"language":6,"meta":8,"style":8},"language-python shiki shiki-themes github-light github-dark","# Note: These commands are run in terminal/command prompt, not Python code\n\n# Install a single package\n# pip install requests\n\n# Install specific version\n# pip install django==4.2.0\n\n# Install multiple packages\n# pip install numpy pandas matplotlib\n\n# Check installed packages\n# pip list\n\n# Create virtual environment\n# python -m venv myproject_env\n\n# Activate on Windows: myproject_env\\Scripts\\activate\n# Activate on macOS/Linux: source myproject_env/bin/activate\n\nprint(\"Package management commands are run in terminal\")\nprint(\"Example: pip install requests\")\nprint(\"Then you can import: import requests\")\n",[1030],{"type":993,"tag":1007,"props":1031,"children":1032},{"__ignoreMap":8},[1033,1044,1052,1060,1068,1075,1083,1091,1098,1106,1114,1121,1129,1137,1144,1152,1160,1167,1175,1183,1190,1216,1236],{"type":993,"tag":1034,"props":1035,"children":1037},"span",{"class":1036,"line":12},"line",[1038],{"type":993,"tag":1034,"props":1039,"children":1041},{"style":1040},"--shiki-default:#6A737D;--shiki-app-dark-mode:#6A737D",[1042],{"type":998,"value":1043},"# Note: These commands are run in terminal/command prompt, not Python code\n",{"type":993,"tag":1034,"props":1045,"children":1046},{"class":1036,"line":27},[1047],{"type":993,"tag":1034,"props":1048,"children":1049},{"emptyLinePlaceholder":13},[1050],{"type":998,"value":1051},"\n",{"type":993,"tag":1034,"props":1053,"children":1054},{"class":1036,"line":36},[1055],{"type":993,"tag":1034,"props":1056,"children":1057},{"style":1040},[1058],{"type":998,"value":1059},"# Install a single package\n",{"type":993,"tag":1034,"props":1061,"children":1062},{"class":1036,"line":45},[1063],{"type":993,"tag":1034,"props":1064,"children":1065},{"style":1040},[1066],{"type":998,"value":1067},"# pip install requests\n",{"type":993,"tag":1034,"props":1069,"children":1070},{"class":1036,"line":54},[1071],{"type":993,"tag":1034,"props":1072,"children":1073},{"emptyLinePlaceholder":13},[1074],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1076,"children":1077},{"class":1036,"line":63},[1078],{"type":993,"tag":1034,"props":1079,"children":1080},{"style":1040},[1081],{"type":998,"value":1082},"# Install specific version\n",{"type":993,"tag":1034,"props":1084,"children":1085},{"class":1036,"line":72},[1086],{"type":993,"tag":1034,"props":1087,"children":1088},{"style":1040},[1089],{"type":998,"value":1090},"# pip install django==4.2.0\n",{"type":993,"tag":1034,"props":1092,"children":1093},{"class":1036,"line":81},[1094],{"type":993,"tag":1034,"props":1095,"children":1096},{"emptyLinePlaceholder":13},[1097],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1099,"children":1100},{"class":1036,"line":91},[1101],{"type":993,"tag":1034,"props":1102,"children":1103},{"style":1040},[1104],{"type":998,"value":1105},"# Install multiple packages\n",{"type":993,"tag":1034,"props":1107,"children":1108},{"class":1036,"line":100},[1109],{"type":993,"tag":1034,"props":1110,"children":1111},{"style":1040},[1112],{"type":998,"value":1113},"# pip install numpy pandas matplotlib\n",{"type":993,"tag":1034,"props":1115,"children":1116},{"class":1036,"line":109},[1117],{"type":993,"tag":1034,"props":1118,"children":1119},{"emptyLinePlaceholder":13},[1120],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1122,"children":1123},{"class":1036,"line":118},[1124],{"type":993,"tag":1034,"props":1125,"children":1126},{"style":1040},[1127],{"type":998,"value":1128},"# Check installed packages\n",{"type":993,"tag":1034,"props":1130,"children":1131},{"class":1036,"line":127},[1132],{"type":993,"tag":1034,"props":1133,"children":1134},{"style":1040},[1135],{"type":998,"value":1136},"# pip list\n",{"type":993,"tag":1034,"props":1138,"children":1139},{"class":1036,"line":136},[1140],{"type":993,"tag":1034,"props":1141,"children":1142},{"emptyLinePlaceholder":13},[1143],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1145,"children":1146},{"class":1036,"line":146},[1147],{"type":993,"tag":1034,"props":1148,"children":1149},{"style":1040},[1150],{"type":998,"value":1151},"# Create virtual environment\n",{"type":993,"tag":1034,"props":1153,"children":1154},{"class":1036,"line":155},[1155],{"type":993,"tag":1034,"props":1156,"children":1157},{"style":1040},[1158],{"type":998,"value":1159},"# python -m venv myproject_env\n",{"type":993,"tag":1034,"props":1161,"children":1162},{"class":1036,"line":164},[1163],{"type":993,"tag":1034,"props":1164,"children":1165},{"emptyLinePlaceholder":13},[1166],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1168,"children":1169},{"class":1036,"line":173},[1170],{"type":993,"tag":1034,"props":1171,"children":1172},{"style":1040},[1173],{"type":998,"value":1174},"# Activate on Windows: myproject_env\\Scripts\\activate\n",{"type":993,"tag":1034,"props":1176,"children":1177},{"class":1036,"line":182},[1178],{"type":993,"tag":1034,"props":1179,"children":1180},{"style":1040},[1181],{"type":998,"value":1182},"# Activate on macOS/Linux: source myproject_env/bin/activate\n",{"type":993,"tag":1034,"props":1184,"children":1185},{"class":1036,"line":191},[1186],{"type":993,"tag":1034,"props":1187,"children":1188},{"emptyLinePlaceholder":13},[1189],{"type":998,"value":1051},{"type":993,"tag":1034,"props":1191,"children":1192},{"class":1036,"line":201},[1193,1199,1205,1211],{"type":993,"tag":1034,"props":1194,"children":1196},{"style":1195},"--shiki-default:#005CC5;--shiki-app-dark-mode:#79B8FF",[1197],{"type":998,"value":1198},"print",{"type":993,"tag":1034,"props":1200,"children":1202},{"style":1201},"--shiki-default:#24292E;--shiki-app-dark-mode:#E1E4E8",[1203],{"type":998,"value":1204},"(",{"type":993,"tag":1034,"props":1206,"children":1208},{"style":1207},"--shiki-default:#032F62;--shiki-app-dark-mode:#9ECBFF",[1209],{"type":998,"value":1210},"\"Package management commands are run in terminal\"",{"type":993,"tag":1034,"props":1212,"children":1213},{"style":1201},[1214],{"type":998,"value":1215},")\n",{"type":993,"tag":1034,"props":1217,"children":1218},{"class":1036,"line":210},[1219,1223,1227,1232],{"type":993,"tag":1034,"props":1220,"children":1221},{"style":1195},[1222],{"type":998,"value":1198},{"type":993,"tag":1034,"props":1224,"children":1225},{"style":1201},[1226],{"type":998,"value":1204},{"type":993,"tag":1034,"props":1228,"children":1229},{"style":1207},[1230],{"type":998,"value":1231},"\"Example: pip install requests\"",{"type":993,"tag":1034,"props":1233,"children":1234},{"style":1201},[1235],{"type":998,"value":1215},{"type":993,"tag":1034,"props":1237,"children":1238},{"class":1036,"line":219},[1239,1243,1247,1252],{"type":993,"tag":1034,"props":1240,"children":1241},{"style":1195},[1242],{"type":998,"value":1198},{"type":993,"tag":1034,"props":1244,"children":1245},{"style":1201},[1246],{"type":998,"value":1204},{"type":993,"tag":1034,"props":1248,"children":1249},{"style":1207},[1250],{"type":998,"value":1251},"\"Then you can import: import requests\"",{"type":993,"tag":1034,"props":1253,"children":1254},{"style":1201},[1255],{"type":998,"value":1215},{"type":993,"tag":1257,"props":1258,"children":1260},"h2",{"id":1259},"understanding-python-package-ecosystem",[1261],{"type":998,"value":1262},"🎯 Understanding Python Package Ecosystem",{"type":993,"tag":1001,"props":1264,"children":1265},{},[1266],{"type":998,"value":1267},"Python's package ecosystem provides access to thousands of libraries for various programming needs and application domains.",{"type":993,"tag":1269,"props":1270,"children":1274},"info-box",{"emoji":1271,"title":1272,"type":1273},"🔧","Python Package Management Components","info",[1275,1284,1338,1346,1389,1397,1440,1448,1491,1499],{"type":993,"tag":1001,"props":1276,"children":1277},{},[1278],{"type":993,"tag":1279,"props":1280,"children":1281},"strong",{},[1282],{"type":998,"value":1283},"Core Tools:",{"type":993,"tag":1285,"props":1286,"children":1287},"ul",{},[1288,1298,1308,1318,1328],{"type":993,"tag":1289,"props":1290,"children":1291},"li",{},[1292,1296],{"type":993,"tag":1279,"props":1293,"children":1294},{},[1295],{"type":998,"value":1012},{"type":998,"value":1297},": Package installer for Python (pip installs packages)",{"type":993,"tag":1289,"props":1299,"children":1300},{},[1301,1306],{"type":993,"tag":1279,"props":1302,"children":1303},{},[1304],{"type":998,"value":1305},"PyPI",{"type":998,"value":1307},": Python Package Index - the official repository",{"type":993,"tag":1289,"props":1309,"children":1310},{},[1311,1316],{"type":993,"tag":1279,"props":1312,"children":1313},{},[1314],{"type":998,"value":1315},"venv",{"type":998,"value":1317},": Built-in virtual environment creation tool",{"type":993,"tag":1289,"props":1319,"children":1320},{},[1321,1326],{"type":993,"tag":1279,"props":1322,"children":1323},{},[1324],{"type":998,"value":1325},"setuptools",{"type":998,"value":1327},": Package building and distribution tools",{"type":993,"tag":1289,"props":1329,"children":1330},{},[1331,1336],{"type":993,"tag":1279,"props":1332,"children":1333},{},[1334],{"type":998,"value":1335},"wheel",{"type":998,"value":1337},": Binary package format for faster installation",{"type":993,"tag":1001,"props":1339,"children":1340},{},[1341],{"type":993,"tag":1279,"props":1342,"children":1343},{},[1344],{"type":998,"value":1345},"Package Types:",{"type":993,"tag":1285,"props":1347,"children":1348},{},[1349,1359,1369,1379],{"type":993,"tag":1289,"props":1350,"children":1351},{},[1352,1357],{"type":993,"tag":1279,"props":1353,"children":1354},{},[1355],{"type":998,"value":1356},"Standard Library",{"type":998,"value":1358},": Built-in packages (json, datetime, os)",{"type":993,"tag":1289,"props":1360,"children":1361},{},[1362,1367],{"type":993,"tag":1279,"props":1363,"children":1364},{},[1365],{"type":998,"value":1366},"Third-party Packages",{"type":998,"value":1368},": External libraries from PyPI",{"type":993,"tag":1289,"props":1370,"children":1371},{},[1372,1377],{"type":993,"tag":1279,"props":1373,"children":1374},{},[1375],{"type":998,"value":1376},"Local Packages",{"type":998,"value":1378},": Custom packages you create",{"type":993,"tag":1289,"props":1380,"children":1381},{},[1382,1387],{"type":993,"tag":1279,"props":1383,"children":1384},{},[1385],{"type":998,"value":1386},"Development Packages",{"type":998,"value":1388},": Tools for development (pytest, black)",{"type":993,"tag":1001,"props":1390,"children":1391},{},[1392],{"type":993,"tag":1279,"props":1393,"children":1394},{},[1395],{"type":998,"value":1396},"Environment Management:",{"type":993,"tag":1285,"props":1398,"children":1399},{},[1400,1410,1420,1430],{"type":993,"tag":1289,"props":1401,"children":1402},{},[1403,1408],{"type":993,"tag":1279,"props":1404,"children":1405},{},[1406],{"type":998,"value":1407},"Global Environment",{"type":998,"value":1409},": System-wide Python installation",{"type":993,"tag":1289,"props":1411,"children":1412},{},[1413,1418],{"type":993,"tag":1279,"props":1414,"children":1415},{},[1416],{"type":998,"value":1417},"Virtual Environments",{"type":998,"value":1419},": Isolated project environments",{"type":993,"tag":1289,"props":1421,"children":1422},{},[1423,1428],{"type":993,"tag":1279,"props":1424,"children":1425},{},[1426],{"type":998,"value":1427},"Environment Variables",{"type":998,"value":1429},": Configuration for package behavior",{"type":993,"tag":1289,"props":1431,"children":1432},{},[1433,1438],{"type":993,"tag":1279,"props":1434,"children":1435},{},[1436],{"type":998,"value":1437},"Path Management",{"type":998,"value":1439},": Control where packages are found",{"type":993,"tag":1001,"props":1441,"children":1442},{},[1443],{"type":993,"tag":1279,"props":1444,"children":1445},{},[1446],{"type":998,"value":1447},"Dependency Resolution:",{"type":993,"tag":1285,"props":1449,"children":1450},{},[1451,1461,1471,1481],{"type":993,"tag":1289,"props":1452,"children":1453},{},[1454,1459],{"type":993,"tag":1279,"props":1455,"children":1456},{},[1457],{"type":998,"value":1458},"Direct Dependencies",{"type":998,"value":1460},": Packages you explicitly install",{"type":993,"tag":1289,"props":1462,"children":1463},{},[1464,1469],{"type":993,"tag":1279,"props":1465,"children":1466},{},[1467],{"type":998,"value":1468},"Transitive Dependencies",{"type":998,"value":1470},": Dependencies of your dependencies",{"type":993,"tag":1289,"props":1472,"children":1473},{},[1474,1479],{"type":993,"tag":1279,"props":1475,"children":1476},{},[1477],{"type":998,"value":1478},"Version Constraints",{"type":998,"value":1480},": Specify compatible package versions",{"type":993,"tag":1289,"props":1482,"children":1483},{},[1484,1489],{"type":993,"tag":1279,"props":1485,"children":1486},{},[1487],{"type":998,"value":1488},"Conflict Resolution",{"type":998,"value":1490},": Handle incompatible requirements",{"type":993,"tag":1001,"props":1492,"children":1493},{},[1494],{"type":993,"tag":1279,"props":1495,"children":1496},{},[1497],{"type":998,"value":1498},"Best Practices:",{"type":993,"tag":1285,"props":1500,"children":1501},{},[1502,1512,1522,1532],{"type":993,"tag":1289,"props":1503,"children":1504},{},[1505,1510],{"type":993,"tag":1279,"props":1506,"children":1507},{},[1508],{"type":998,"value":1509},"Use Virtual Environments",{"type":998,"value":1511},": Isolate project dependencies",{"type":993,"tag":1289,"props":1513,"children":1514},{},[1515,1520],{"type":993,"tag":1279,"props":1516,"children":1517},{},[1518],{"type":998,"value":1519},"Pin Versions",{"type":998,"value":1521},": Ensure reproducible builds",{"type":993,"tag":1289,"props":1523,"children":1524},{},[1525,1530],{"type":993,"tag":1279,"props":1526,"children":1527},{},[1528],{"type":998,"value":1529},"Document Requirements",{"type":998,"value":1531},": Maintain requirements.txt files",{"type":993,"tag":1289,"props":1533,"children":1534},{},[1535,1540],{"type":993,"tag":1279,"props":1536,"children":1537},{},[1538],{"type":998,"value":1539},"Regular Updates",{"type":998,"value":1541},": Keep packages current and secure",{"type":993,"tag":1543,"props":1544,"children":1546},"h3",{"id":1545},"package-installation-with-pip",[1547],{"type":998,"value":1548},"Package Installation with pip",{"type":993,"tag":1001,"props":1550,"children":1551},{},[1552],{"type":998,"value":1553},"pip is Python's standard package installer that downloads and installs libraries from the Python Package Index (PyPI).",{"type":993,"tag":1021,"props":1555,"children":1556},{},[1557],{"type":993,"tag":1025,"props":1558,"children":1560},{"className":1027,"code":1559,"language":6,"meta":8,"style":8},"# Simulate pip installation results\ndef simulate_pip_install(package, version=None):\n    \"\"\"Simulate what happens during pip install\"\"\"\n    \n    installations = {\n        \"requests\": {\n            \"version\": \"2.31.0\",\n            \"dependencies\": [\"urllib3\", \"certifi\", \"charset-normalizer\", \"idna\"],\n            \"size\": \"512 KB\"\n        },\n        \"flask\": {\n            \"version\": \"2.3.2\", \n            \"dependencies\": [\"Werkzeug\", \"Jinja2\", \"itsdangerous\", \"click\"],\n            \"size\": \"850 KB\"\n        },\n        \"pandas\": {\n            \"version\": \"2.0.3\",\n            \"dependencies\": [\"numpy\", \"python-dateutil\", \"pytz\"],\n            \"size\": \"15.2 MB\"\n        }\n    }\n    \n    if package in installations:\n        info = installations[package]\n        print(f\"Installing {package}...\")\n        print(f\"  Version: {info['version']}\")\n        print(f\"  Dependencies: {', '.join(info['dependencies'])}\")\n        print(f\"  Download size: {info['size']}\")\n        print(f\"  Installation location: site-packages/{package}\")\n        print(f\"✅ Successfully installed {package}\")\n        return True\n    else:\n        print(f\"❌ Package '{package}' not found\")\n        return False\n\n# Simulate common package installations\npackages_to_install = [\"requests\", \"flask\", \"pandas\", \"unknown_package\"]\n\nfor package in packages_to_install:\n    simulate_pip_install(package)\n    print()\n",[1561],{"type":993,"tag":1007,"props":1562,"children":1563},{"__ignoreMap":8},[1564,1572,1607,1615,1623,1640,1653,1676,1727,1744,1752,1764,1785,1832,1848,1855,1867,1887,1925,1941,1949,1957,1964,1987,2004,2050,2102,2158,2207,2247,2287,2300,2313,2354,2366,2373,2381,2435,2442,2463,2471],{"type":993,"tag":1034,"props":1565,"children":1566},{"class":1036,"line":12},[1567],{"type":993,"tag":1034,"props":1568,"children":1569},{"style":1040},[1570],{"type":998,"value":1571},"# Simulate pip installation results\n",{"type":993,"tag":1034,"props":1573,"children":1574},{"class":1036,"line":27},[1575,1581,1587,1592,1597,1602],{"type":993,"tag":1034,"props":1576,"children":1578},{"style":1577},"--shiki-default:#D73A49;--shiki-app-dark-mode:#F97583",[1579],{"type":998,"value":1580},"def",{"type":993,"tag":1034,"props":1582,"children":1584},{"style":1583},"--shiki-default:#6F42C1;--shiki-app-dark-mode:#B392F0",[1585],{"type":998,"value":1586}," simulate_pip_install",{"type":993,"tag":1034,"props":1588,"children":1589},{"style":1201},[1590],{"type":998,"value":1591},"(package, version",{"type":993,"tag":1034,"props":1593,"children":1594},{"style":1577},[1595],{"type":998,"value":1596},"=",{"type":993,"tag":1034,"props":1598,"children":1599},{"style":1195},[1600],{"type":998,"value":1601},"None",{"type":993,"tag":1034,"props":1603,"children":1604},{"style":1201},[1605],{"type":998,"value":1606},"):\n",{"type":993,"tag":1034,"props":1608,"children":1609},{"class":1036,"line":36},[1610],{"type":993,"tag":1034,"props":1611,"children":1612},{"style":1207},[1613],{"type":998,"value":1614},"    \"\"\"Simulate what happens during pip install\"\"\"\n",{"type":993,"tag":1034,"props":1616,"children":1617},{"class":1036,"line":45},[1618],{"type":993,"tag":1034,"props":1619,"children":1620},{"style":1201},[1621],{"type":998,"value":1622},"    \n",{"type":993,"tag":1034,"props":1624,"children":1625},{"class":1036,"line":54},[1626,1631,1635],{"type":993,"tag":1034,"props":1627,"children":1628},{"style":1201},[1629],{"type":998,"value":1630},"    installations ",{"type":993,"tag":1034,"props":1632,"children":1633},{"style":1577},[1634],{"type":998,"value":1596},{"type":993,"tag":1034,"props":1636,"children":1637},{"style":1201},[1638],{"type":998,"value":1639}," {\n",{"type":993,"tag":1034,"props":1641,"children":1642},{"class":1036,"line":63},[1643,1648],{"type":993,"tag":1034,"props":1644,"children":1645},{"style":1207},[1646],{"type":998,"value":1647},"        \"requests\"",{"type":993,"tag":1034,"props":1649,"children":1650},{"style":1201},[1651],{"type":998,"value":1652},": {\n",{"type":993,"tag":1034,"props":1654,"children":1655},{"class":1036,"line":72},[1656,1661,1666,1671],{"type":993,"tag":1034,"props":1657,"children":1658},{"style":1207},[1659],{"type":998,"value":1660},"            \"version\"",{"type":993,"tag":1034,"props":1662,"children":1663},{"style":1201},[1664],{"type":998,"value":1665},": ",{"type":993,"tag":1034,"props":1667,"children":1668},{"style":1207},[1669],{"type":998,"value":1670},"\"2.31.0\"",{"type":993,"tag":1034,"props":1672,"children":1673},{"style":1201},[1674],{"type":998,"value":1675},",\n",{"type":993,"tag":1034,"props":1677,"children":1678},{"class":1036,"line":81},[1679,1684,1689,1694,1699,1704,1708,1713,1717,1722],{"type":993,"tag":1034,"props":1680,"children":1681},{"style":1207},[1682],{"type":998,"value":1683},"            \"dependencies\"",{"type":993,"tag":1034,"props":1685,"children":1686},{"style":1201},[1687],{"type":998,"value":1688},": [",{"type":993,"tag":1034,"props":1690,"children":1691},{"style":1207},[1692],{"type":998,"value":1693},"\"urllib3\"",{"type":993,"tag":1034,"props":1695,"children":1696},{"style":1201},[1697],{"type":998,"value":1698},", ",{"type":993,"tag":1034,"props":1700,"children":1701},{"style":1207},[1702],{"type":998,"value":1703},"\"certifi\"",{"type":993,"tag":1034,"props":1705,"children":1706},{"style":1201},[1707],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1709,"children":1710},{"style":1207},[1711],{"type":998,"value":1712},"\"charset-normalizer\"",{"type":993,"tag":1034,"props":1714,"children":1715},{"style":1201},[1716],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1718,"children":1719},{"style":1207},[1720],{"type":998,"value":1721},"\"idna\"",{"type":993,"tag":1034,"props":1723,"children":1724},{"style":1201},[1725],{"type":998,"value":1726},"],\n",{"type":993,"tag":1034,"props":1728,"children":1729},{"class":1036,"line":91},[1730,1735,1739],{"type":993,"tag":1034,"props":1731,"children":1732},{"style":1207},[1733],{"type":998,"value":1734},"            \"size\"",{"type":993,"tag":1034,"props":1736,"children":1737},{"style":1201},[1738],{"type":998,"value":1665},{"type":993,"tag":1034,"props":1740,"children":1741},{"style":1207},[1742],{"type":998,"value":1743},"\"512 KB\"\n",{"type":993,"tag":1034,"props":1745,"children":1746},{"class":1036,"line":100},[1747],{"type":993,"tag":1034,"props":1748,"children":1749},{"style":1201},[1750],{"type":998,"value":1751},"        },\n",{"type":993,"tag":1034,"props":1753,"children":1754},{"class":1036,"line":109},[1755,1760],{"type":993,"tag":1034,"props":1756,"children":1757},{"style":1207},[1758],{"type":998,"value":1759},"        \"flask\"",{"type":993,"tag":1034,"props":1761,"children":1762},{"style":1201},[1763],{"type":998,"value":1652},{"type":993,"tag":1034,"props":1765,"children":1766},{"class":1036,"line":118},[1767,1771,1775,1780],{"type":993,"tag":1034,"props":1768,"children":1769},{"style":1207},[1770],{"type":998,"value":1660},{"type":993,"tag":1034,"props":1772,"children":1773},{"style":1201},[1774],{"type":998,"value":1665},{"type":993,"tag":1034,"props":1776,"children":1777},{"style":1207},[1778],{"type":998,"value":1779},"\"2.3.2\"",{"type":993,"tag":1034,"props":1781,"children":1782},{"style":1201},[1783],{"type":998,"value":1784},", \n",{"type":993,"tag":1034,"props":1786,"children":1787},{"class":1036,"line":127},[1788,1792,1796,1801,1805,1810,1814,1819,1823,1828],{"type":993,"tag":1034,"props":1789,"children":1790},{"style":1207},[1791],{"type":998,"value":1683},{"type":993,"tag":1034,"props":1793,"children":1794},{"style":1201},[1795],{"type":998,"value":1688},{"type":993,"tag":1034,"props":1797,"children":1798},{"style":1207},[1799],{"type":998,"value":1800},"\"Werkzeug\"",{"type":993,"tag":1034,"props":1802,"children":1803},{"style":1201},[1804],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1806,"children":1807},{"style":1207},[1808],{"type":998,"value":1809},"\"Jinja2\"",{"type":993,"tag":1034,"props":1811,"children":1812},{"style":1201},[1813],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1815,"children":1816},{"style":1207},[1817],{"type":998,"value":1818},"\"itsdangerous\"",{"type":993,"tag":1034,"props":1820,"children":1821},{"style":1201},[1822],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1824,"children":1825},{"style":1207},[1826],{"type":998,"value":1827},"\"click\"",{"type":993,"tag":1034,"props":1829,"children":1830},{"style":1201},[1831],{"type":998,"value":1726},{"type":993,"tag":1034,"props":1833,"children":1834},{"class":1036,"line":136},[1835,1839,1843],{"type":993,"tag":1034,"props":1836,"children":1837},{"style":1207},[1838],{"type":998,"value":1734},{"type":993,"tag":1034,"props":1840,"children":1841},{"style":1201},[1842],{"type":998,"value":1665},{"type":993,"tag":1034,"props":1844,"children":1845},{"style":1207},[1846],{"type":998,"value":1847},"\"850 KB\"\n",{"type":993,"tag":1034,"props":1849,"children":1850},{"class":1036,"line":146},[1851],{"type":993,"tag":1034,"props":1852,"children":1853},{"style":1201},[1854],{"type":998,"value":1751},{"type":993,"tag":1034,"props":1856,"children":1857},{"class":1036,"line":155},[1858,1863],{"type":993,"tag":1034,"props":1859,"children":1860},{"style":1207},[1861],{"type":998,"value":1862},"        \"pandas\"",{"type":993,"tag":1034,"props":1864,"children":1865},{"style":1201},[1866],{"type":998,"value":1652},{"type":993,"tag":1034,"props":1868,"children":1869},{"class":1036,"line":164},[1870,1874,1878,1883],{"type":993,"tag":1034,"props":1871,"children":1872},{"style":1207},[1873],{"type":998,"value":1660},{"type":993,"tag":1034,"props":1875,"children":1876},{"style":1201},[1877],{"type":998,"value":1665},{"type":993,"tag":1034,"props":1879,"children":1880},{"style":1207},[1881],{"type":998,"value":1882},"\"2.0.3\"",{"type":993,"tag":1034,"props":1884,"children":1885},{"style":1201},[1886],{"type":998,"value":1675},{"type":993,"tag":1034,"props":1888,"children":1889},{"class":1036,"line":173},[1890,1894,1898,1903,1907,1912,1916,1921],{"type":993,"tag":1034,"props":1891,"children":1892},{"style":1207},[1893],{"type":998,"value":1683},{"type":993,"tag":1034,"props":1895,"children":1896},{"style":1201},[1897],{"type":998,"value":1688},{"type":993,"tag":1034,"props":1899,"children":1900},{"style":1207},[1901],{"type":998,"value":1902},"\"numpy\"",{"type":993,"tag":1034,"props":1904,"children":1905},{"style":1201},[1906],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1908,"children":1909},{"style":1207},[1910],{"type":998,"value":1911},"\"python-dateutil\"",{"type":993,"tag":1034,"props":1913,"children":1914},{"style":1201},[1915],{"type":998,"value":1698},{"type":993,"tag":1034,"props":1917,"children":1918},{"style":1207},[1919],{"type":998,"value":1920},"\"pytz\"",{"type":993,"tag":1034,"props":1922,"children":1923},{"style":1201},[1924],{"type":998,"value":1726},{"type":993,"tag":1034,"props":1926,"children":1927},{"class":1036,"line":182},[1928,1932,1936],{"type":993,"tag":1034,"props":1929,"children":1930},{"style":1207},[1931],{"type":998,"value":1734},{"type":993,"tag":1034,"props":1933,"children":1934},{"style":1201},[1935],{"type":998,"value":1665},{"type":993,"tag":1034,"props":1937,"children":1938},{"style":1207},[1939],{"type":998,"value":1940},"\"15.2 MB\"\n",{"type":993,"tag":1034,"props":1942,"children":1943},{"class":1036,"line":191},[1944],{"type":993,"tag":1034,"props":1945,"children":1946},{"style":1201},[1947],{"type":998,"value":1948},"        }\n",{"type":993,"tag":1034,"props":1950,"children":1951},{"class":1036,"line":201},[1952],{"type":993,"tag":1034,"props":1953,"children":1954},{"style":1201},[1955],{"type":998,"value":1956},"    }\n",{"type":993,"tag":1034,"props":1958,"children":1959},{"class":1036,"line":210},[1960],{"type":993,"tag":1034,"props":1961,"children":1962},{"style":1201},[1963],{"type":998,"value":1622},{"type":993,"tag":1034,"props":1965,"children":1966},{"class":1036,"line":219},[1967,1972,1977,1982],{"type":993,"tag":1034,"props":1968,"children":1969},{"style":1577},[1970],{"type":998,"value":1971},"    if",{"type":993,"tag":1034,"props":1973,"children":1974},{"style":1201},[1975],{"type":998,"value":1976}," package ",{"type":993,"tag":1034,"props":1978,"children":1979},{"style":1577},[1980],{"type":998,"value":1981},"in",{"type":993,"tag":1034,"props":1983,"children":1984},{"style":1201},[1985],{"type":998,"value":1986}," installations:\n",{"type":993,"tag":1034,"props":1988,"children":1989},{"class":1036,"line":228},[1990,1995,1999],{"type":993,"tag":1034,"props":1991,"children":1992},{"style":1201},[1993],{"type":998,"value":1994},"        info ",{"type":993,"tag":1034,"props":1996,"children":1997},{"style":1577},[1998],{"type":998,"value":1596},{"type":993,"tag":1034,"props":2000,"children":2001},{"style":1201},[2002],{"type":998,"value":2003}," installations[package]\n",{"type":993,"tag":1034,"props":2005,"children":2006},{"class":1036,"line":238},[2007,2012,2016,2021,2026,2031,2036,2041,2046],{"type":993,"tag":1034,"props":2008,"children":2009},{"style":1195},[2010],{"type":998,"value":2011},"        print",{"type":993,"tag":1034,"props":2013,"children":2014},{"style":1201},[2015],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2017,"children":2018},{"style":1577},[2019],{"type":998,"value":2020},"f",{"type":993,"tag":1034,"props":2022,"children":2023},{"style":1207},[2024],{"type":998,"value":2025},"\"Installing ",{"type":993,"tag":1034,"props":2027,"children":2028},{"style":1195},[2029],{"type":998,"value":2030},"{",{"type":993,"tag":1034,"props":2032,"children":2033},{"style":1201},[2034],{"type":998,"value":2035},"package",{"type":993,"tag":1034,"props":2037,"children":2038},{"style":1195},[2039],{"type":998,"value":2040},"}",{"type":993,"tag":1034,"props":2042,"children":2043},{"style":1207},[2044],{"type":998,"value":2045},"...\"",{"type":993,"tag":1034,"props":2047,"children":2048},{"style":1201},[2049],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2051,"children":2052},{"class":1036,"line":247},[2053,2057,2061,2065,2070,2074,2079,2084,2089,2093,2098],{"type":993,"tag":1034,"props":2054,"children":2055},{"style":1195},[2056],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2058,"children":2059},{"style":1201},[2060],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2062,"children":2063},{"style":1577},[2064],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2066,"children":2067},{"style":1207},[2068],{"type":998,"value":2069},"\"  Version: ",{"type":993,"tag":1034,"props":2071,"children":2072},{"style":1195},[2073],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2075,"children":2076},{"style":1201},[2077],{"type":998,"value":2078},"info[",{"type":993,"tag":1034,"props":2080,"children":2081},{"style":1207},[2082],{"type":998,"value":2083},"'version'",{"type":993,"tag":1034,"props":2085,"children":2086},{"style":1201},[2087],{"type":998,"value":2088},"]",{"type":993,"tag":1034,"props":2090,"children":2091},{"style":1195},[2092],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2094,"children":2095},{"style":1207},[2096],{"type":998,"value":2097},"\"",{"type":993,"tag":1034,"props":2099,"children":2100},{"style":1201},[2101],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2103,"children":2104},{"class":1036,"line":256},[2105,2109,2113,2117,2122,2126,2131,2136,2141,2146,2150,2154],{"type":993,"tag":1034,"props":2106,"children":2107},{"style":1195},[2108],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2110,"children":2111},{"style":1201},[2112],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2114,"children":2115},{"style":1577},[2116],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2118,"children":2119},{"style":1207},[2120],{"type":998,"value":2121},"\"  Dependencies: ",{"type":993,"tag":1034,"props":2123,"children":2124},{"style":1195},[2125],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2127,"children":2128},{"style":1207},[2129],{"type":998,"value":2130},"', '",{"type":993,"tag":1034,"props":2132,"children":2133},{"style":1201},[2134],{"type":998,"value":2135},".join(info[",{"type":993,"tag":1034,"props":2137,"children":2138},{"style":1207},[2139],{"type":998,"value":2140},"'dependencies'",{"type":993,"tag":1034,"props":2142,"children":2143},{"style":1201},[2144],{"type":998,"value":2145},"])",{"type":993,"tag":1034,"props":2147,"children":2148},{"style":1195},[2149],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2151,"children":2152},{"style":1207},[2153],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2155,"children":2156},{"style":1201},[2157],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2159,"children":2160},{"class":1036,"line":265},[2161,2165,2169,2173,2178,2182,2186,2191,2195,2199,2203],{"type":993,"tag":1034,"props":2162,"children":2163},{"style":1195},[2164],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2166,"children":2167},{"style":1201},[2168],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2170,"children":2171},{"style":1577},[2172],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2174,"children":2175},{"style":1207},[2176],{"type":998,"value":2177},"\"  Download size: ",{"type":993,"tag":1034,"props":2179,"children":2180},{"style":1195},[2181],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2183,"children":2184},{"style":1201},[2185],{"type":998,"value":2078},{"type":993,"tag":1034,"props":2187,"children":2188},{"style":1207},[2189],{"type":998,"value":2190},"'size'",{"type":993,"tag":1034,"props":2192,"children":2193},{"style":1201},[2194],{"type":998,"value":2088},{"type":993,"tag":1034,"props":2196,"children":2197},{"style":1195},[2198],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2200,"children":2201},{"style":1207},[2202],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2204,"children":2205},{"style":1201},[2206],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2208,"children":2209},{"class":1036,"line":274},[2210,2214,2218,2222,2227,2231,2235,2239,2243],{"type":993,"tag":1034,"props":2211,"children":2212},{"style":1195},[2213],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2215,"children":2216},{"style":1201},[2217],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2219,"children":2220},{"style":1577},[2221],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2223,"children":2224},{"style":1207},[2225],{"type":998,"value":2226},"\"  Installation location: site-packages/",{"type":993,"tag":1034,"props":2228,"children":2229},{"style":1195},[2230],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2232,"children":2233},{"style":1201},[2234],{"type":998,"value":2035},{"type":993,"tag":1034,"props":2236,"children":2237},{"style":1195},[2238],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2240,"children":2241},{"style":1207},[2242],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2244,"children":2245},{"style":1201},[2246],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2248,"children":2249},{"class":1036,"line":284},[2250,2254,2258,2262,2267,2271,2275,2279,2283],{"type":993,"tag":1034,"props":2251,"children":2252},{"style":1195},[2253],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2255,"children":2256},{"style":1201},[2257],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2259,"children":2260},{"style":1577},[2261],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2263,"children":2264},{"style":1207},[2265],{"type":998,"value":2266},"\"✅ Successfully installed ",{"type":993,"tag":1034,"props":2268,"children":2269},{"style":1195},[2270],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2272,"children":2273},{"style":1201},[2274],{"type":998,"value":2035},{"type":993,"tag":1034,"props":2276,"children":2277},{"style":1195},[2278],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2280,"children":2281},{"style":1207},[2282],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2284,"children":2285},{"style":1201},[2286],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2288,"children":2289},{"class":1036,"line":293},[2290,2295],{"type":993,"tag":1034,"props":2291,"children":2292},{"style":1577},[2293],{"type":998,"value":2294},"        return",{"type":993,"tag":1034,"props":2296,"children":2297},{"style":1195},[2298],{"type":998,"value":2299}," True\n",{"type":993,"tag":1034,"props":2301,"children":2302},{"class":1036,"line":302},[2303,2308],{"type":993,"tag":1034,"props":2304,"children":2305},{"style":1577},[2306],{"type":998,"value":2307},"    else",{"type":993,"tag":1034,"props":2309,"children":2310},{"style":1201},[2311],{"type":998,"value":2312},":\n",{"type":993,"tag":1034,"props":2314,"children":2315},{"class":1036,"line":311},[2316,2320,2324,2328,2333,2337,2341,2345,2350],{"type":993,"tag":1034,"props":2317,"children":2318},{"style":1195},[2319],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2321,"children":2322},{"style":1201},[2323],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2325,"children":2326},{"style":1577},[2327],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2329,"children":2330},{"style":1207},[2331],{"type":998,"value":2332},"\"❌ Package '",{"type":993,"tag":1034,"props":2334,"children":2335},{"style":1195},[2336],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2338,"children":2339},{"style":1201},[2340],{"type":998,"value":2035},{"type":993,"tag":1034,"props":2342,"children":2343},{"style":1195},[2344],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2346,"children":2347},{"style":1207},[2348],{"type":998,"value":2349},"' not found\"",{"type":993,"tag":1034,"props":2351,"children":2352},{"style":1201},[2353],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2355,"children":2356},{"class":1036,"line":320},[2357,2361],{"type":993,"tag":1034,"props":2358,"children":2359},{"style":1577},[2360],{"type":998,"value":2294},{"type":993,"tag":1034,"props":2362,"children":2363},{"style":1195},[2364],{"type":998,"value":2365}," False\n",{"type":993,"tag":1034,"props":2367,"children":2368},{"class":1036,"line":329},[2369],{"type":993,"tag":1034,"props":2370,"children":2371},{"emptyLinePlaceholder":13},[2372],{"type":998,"value":1051},{"type":993,"tag":1034,"props":2374,"children":2375},{"class":1036,"line":338},[2376],{"type":993,"tag":1034,"props":2377,"children":2378},{"style":1040},[2379],{"type":998,"value":2380},"# Simulate common package installations\n",{"type":993,"tag":1034,"props":2382,"children":2383},{"class":1036,"line":347},[2384,2389,2393,2398,2403,2407,2412,2416,2421,2425,2430],{"type":993,"tag":1034,"props":2385,"children":2386},{"style":1201},[2387],{"type":998,"value":2388},"packages_to_install ",{"type":993,"tag":1034,"props":2390,"children":2391},{"style":1577},[2392],{"type":998,"value":1596},{"type":993,"tag":1034,"props":2394,"children":2395},{"style":1201},[2396],{"type":998,"value":2397}," [",{"type":993,"tag":1034,"props":2399,"children":2400},{"style":1207},[2401],{"type":998,"value":2402},"\"requests\"",{"type":993,"tag":1034,"props":2404,"children":2405},{"style":1201},[2406],{"type":998,"value":1698},{"type":993,"tag":1034,"props":2408,"children":2409},{"style":1207},[2410],{"type":998,"value":2411},"\"flask\"",{"type":993,"tag":1034,"props":2413,"children":2414},{"style":1201},[2415],{"type":998,"value":1698},{"type":993,"tag":1034,"props":2417,"children":2418},{"style":1207},[2419],{"type":998,"value":2420},"\"pandas\"",{"type":993,"tag":1034,"props":2422,"children":2423},{"style":1201},[2424],{"type":998,"value":1698},{"type":993,"tag":1034,"props":2426,"children":2427},{"style":1207},[2428],{"type":998,"value":2429},"\"unknown_package\"",{"type":993,"tag":1034,"props":2431,"children":2432},{"style":1201},[2433],{"type":998,"value":2434},"]\n",{"type":993,"tag":1034,"props":2436,"children":2437},{"class":1036,"line":356},[2438],{"type":993,"tag":1034,"props":2439,"children":2440},{"emptyLinePlaceholder":13},[2441],{"type":998,"value":1051},{"type":993,"tag":1034,"props":2443,"children":2444},{"class":1036,"line":365},[2445,2450,2454,2458],{"type":993,"tag":1034,"props":2446,"children":2447},{"style":1577},[2448],{"type":998,"value":2449},"for",{"type":993,"tag":1034,"props":2451,"children":2452},{"style":1201},[2453],{"type":998,"value":1976},{"type":993,"tag":1034,"props":2455,"children":2456},{"style":1577},[2457],{"type":998,"value":1981},{"type":993,"tag":1034,"props":2459,"children":2460},{"style":1201},[2461],{"type":998,"value":2462}," packages_to_install:\n",{"type":993,"tag":1034,"props":2464,"children":2465},{"class":1036,"line":374},[2466],{"type":993,"tag":1034,"props":2467,"children":2468},{"style":1201},[2469],{"type":998,"value":2470},"    simulate_pip_install(package)\n",{"type":993,"tag":1034,"props":2472,"children":2473},{"class":1036,"line":384},[2474,2479],{"type":993,"tag":1034,"props":2475,"children":2476},{"style":1195},[2477],{"type":998,"value":2478},"    print",{"type":993,"tag":1034,"props":2480,"children":2481},{"style":1201},[2482],{"type":998,"value":2483},"()\n",{"type":993,"tag":1543,"props":2485,"children":2487},{"id":2486},"version-constraint-management",[2488],{"type":998,"value":2489},"Version Constraint Management",{"type":993,"tag":1001,"props":2491,"children":2492},{},[2493],{"type":998,"value":2494},"Version specifications ensure compatibility and control package updates for stable, reproducible development environments.",{"type":993,"tag":1021,"props":2496,"children":2497},{},[2498],{"type":993,"tag":1025,"props":2499,"children":2501},{"className":1027,"code":2500,"language":6,"meta":8,"style":8},"def explain_version_constraints():\n    \"\"\"Demonstrate different version constraint formats\"\"\"\n    \n    constraints = {\n        \"django==4.2.0\": \"Exact version - only install version 4.2.0\",\n        \"requests>=2.25.0\": \"Minimum version - install 2.25.0 or newer\",\n        \"flask>=2.0,\u003C3.0\": \"Range constraint - between 2.0 and 3.0\",\n        \"numpy~=1.20.0\": \"Compatible release - 1.20.x versions only\",\n        \"pytest>=7.0,!=7.1.0\": \"Exclude specific version - avoid 7.1.0\",\n        \"matplotlib>3.5\": \"Greater than - newer than 3.5\",\n        \"pandas\u003C=2.0.0\": \"Maximum version - 2.0.0 or older\"\n    }\n    \n    print(\"Version Constraint Examples:\")\n    print(\"-\" * 50)\n    \n    for constraint, explanation in constraints.items():\n        print(f\"{constraint:\u003C20} → {explanation}\")\n    \n    print(\"\\nBest Practices:\")\n    print(\"• Use exact versions (==) for production deployments\")\n    print(\"• Use ranges (>=,\u003C) for library development\")\n    print(\"• Pin major versions to avoid breaking changes\")\n    print(\"• Regular updates with testing for security\")\n\nexplain_version_constraints()\n",[2502],{"type":993,"tag":1007,"props":2503,"children":2504},{"__ignoreMap":8},[2505,2522,2530,2537,2553,2574,2595,2616,2637,2658,2679,2696,2703,2710,2730,2760,2767,2789,2852,2859,2888,2908,2928,2948,2968,2975],{"type":993,"tag":1034,"props":2506,"children":2507},{"class":1036,"line":12},[2508,2512,2517],{"type":993,"tag":1034,"props":2509,"children":2510},{"style":1577},[2511],{"type":998,"value":1580},{"type":993,"tag":1034,"props":2513,"children":2514},{"style":1583},[2515],{"type":998,"value":2516}," explain_version_constraints",{"type":993,"tag":1034,"props":2518,"children":2519},{"style":1201},[2520],{"type":998,"value":2521},"():\n",{"type":993,"tag":1034,"props":2523,"children":2524},{"class":1036,"line":27},[2525],{"type":993,"tag":1034,"props":2526,"children":2527},{"style":1207},[2528],{"type":998,"value":2529},"    \"\"\"Demonstrate different version constraint formats\"\"\"\n",{"type":993,"tag":1034,"props":2531,"children":2532},{"class":1036,"line":36},[2533],{"type":993,"tag":1034,"props":2534,"children":2535},{"style":1201},[2536],{"type":998,"value":1622},{"type":993,"tag":1034,"props":2538,"children":2539},{"class":1036,"line":45},[2540,2545,2549],{"type":993,"tag":1034,"props":2541,"children":2542},{"style":1201},[2543],{"type":998,"value":2544},"    constraints ",{"type":993,"tag":1034,"props":2546,"children":2547},{"style":1577},[2548],{"type":998,"value":1596},{"type":993,"tag":1034,"props":2550,"children":2551},{"style":1201},[2552],{"type":998,"value":1639},{"type":993,"tag":1034,"props":2554,"children":2555},{"class":1036,"line":54},[2556,2561,2565,2570],{"type":993,"tag":1034,"props":2557,"children":2558},{"style":1207},[2559],{"type":998,"value":2560},"        \"django==4.2.0\"",{"type":993,"tag":1034,"props":2562,"children":2563},{"style":1201},[2564],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2566,"children":2567},{"style":1207},[2568],{"type":998,"value":2569},"\"Exact version - only install version 4.2.0\"",{"type":993,"tag":1034,"props":2571,"children":2572},{"style":1201},[2573],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2575,"children":2576},{"class":1036,"line":63},[2577,2582,2586,2591],{"type":993,"tag":1034,"props":2578,"children":2579},{"style":1207},[2580],{"type":998,"value":2581},"        \"requests>=2.25.0\"",{"type":993,"tag":1034,"props":2583,"children":2584},{"style":1201},[2585],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2587,"children":2588},{"style":1207},[2589],{"type":998,"value":2590},"\"Minimum version - install 2.25.0 or newer\"",{"type":993,"tag":1034,"props":2592,"children":2593},{"style":1201},[2594],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2596,"children":2597},{"class":1036,"line":72},[2598,2603,2607,2612],{"type":993,"tag":1034,"props":2599,"children":2600},{"style":1207},[2601],{"type":998,"value":2602},"        \"flask>=2.0,\u003C3.0\"",{"type":993,"tag":1034,"props":2604,"children":2605},{"style":1201},[2606],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2608,"children":2609},{"style":1207},[2610],{"type":998,"value":2611},"\"Range constraint - between 2.0 and 3.0\"",{"type":993,"tag":1034,"props":2613,"children":2614},{"style":1201},[2615],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2617,"children":2618},{"class":1036,"line":81},[2619,2624,2628,2633],{"type":993,"tag":1034,"props":2620,"children":2621},{"style":1207},[2622],{"type":998,"value":2623},"        \"numpy~=1.20.0\"",{"type":993,"tag":1034,"props":2625,"children":2626},{"style":1201},[2627],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2629,"children":2630},{"style":1207},[2631],{"type":998,"value":2632},"\"Compatible release - 1.20.x versions only\"",{"type":993,"tag":1034,"props":2634,"children":2635},{"style":1201},[2636],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2638,"children":2639},{"class":1036,"line":91},[2640,2645,2649,2654],{"type":993,"tag":1034,"props":2641,"children":2642},{"style":1207},[2643],{"type":998,"value":2644},"        \"pytest>=7.0,!=7.1.0\"",{"type":993,"tag":1034,"props":2646,"children":2647},{"style":1201},[2648],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2650,"children":2651},{"style":1207},[2652],{"type":998,"value":2653},"\"Exclude specific version - avoid 7.1.0\"",{"type":993,"tag":1034,"props":2655,"children":2656},{"style":1201},[2657],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2659,"children":2660},{"class":1036,"line":100},[2661,2666,2670,2675],{"type":993,"tag":1034,"props":2662,"children":2663},{"style":1207},[2664],{"type":998,"value":2665},"        \"matplotlib>3.5\"",{"type":993,"tag":1034,"props":2667,"children":2668},{"style":1201},[2669],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2671,"children":2672},{"style":1207},[2673],{"type":998,"value":2674},"\"Greater than - newer than 3.5\"",{"type":993,"tag":1034,"props":2676,"children":2677},{"style":1201},[2678],{"type":998,"value":1675},{"type":993,"tag":1034,"props":2680,"children":2681},{"class":1036,"line":109},[2682,2687,2691],{"type":993,"tag":1034,"props":2683,"children":2684},{"style":1207},[2685],{"type":998,"value":2686},"        \"pandas\u003C=2.0.0\"",{"type":993,"tag":1034,"props":2688,"children":2689},{"style":1201},[2690],{"type":998,"value":1665},{"type":993,"tag":1034,"props":2692,"children":2693},{"style":1207},[2694],{"type":998,"value":2695},"\"Maximum version - 2.0.0 or older\"\n",{"type":993,"tag":1034,"props":2697,"children":2698},{"class":1036,"line":118},[2699],{"type":993,"tag":1034,"props":2700,"children":2701},{"style":1201},[2702],{"type":998,"value":1956},{"type":993,"tag":1034,"props":2704,"children":2705},{"class":1036,"line":127},[2706],{"type":993,"tag":1034,"props":2707,"children":2708},{"style":1201},[2709],{"type":998,"value":1622},{"type":993,"tag":1034,"props":2711,"children":2712},{"class":1036,"line":136},[2713,2717,2721,2726],{"type":993,"tag":1034,"props":2714,"children":2715},{"style":1195},[2716],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2718,"children":2719},{"style":1201},[2720],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2722,"children":2723},{"style":1207},[2724],{"type":998,"value":2725},"\"Version Constraint Examples:\"",{"type":993,"tag":1034,"props":2727,"children":2728},{"style":1201},[2729],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2731,"children":2732},{"class":1036,"line":146},[2733,2737,2741,2746,2751,2756],{"type":993,"tag":1034,"props":2734,"children":2735},{"style":1195},[2736],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2738,"children":2739},{"style":1201},[2740],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2742,"children":2743},{"style":1207},[2744],{"type":998,"value":2745},"\"-\"",{"type":993,"tag":1034,"props":2747,"children":2748},{"style":1577},[2749],{"type":998,"value":2750}," *",{"type":993,"tag":1034,"props":2752,"children":2753},{"style":1195},[2754],{"type":998,"value":2755}," 50",{"type":993,"tag":1034,"props":2757,"children":2758},{"style":1201},[2759],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2761,"children":2762},{"class":1036,"line":155},[2763],{"type":993,"tag":1034,"props":2764,"children":2765},{"style":1201},[2766],{"type":998,"value":1622},{"type":993,"tag":1034,"props":2768,"children":2769},{"class":1036,"line":164},[2770,2775,2780,2784],{"type":993,"tag":1034,"props":2771,"children":2772},{"style":1577},[2773],{"type":998,"value":2774},"    for",{"type":993,"tag":1034,"props":2776,"children":2777},{"style":1201},[2778],{"type":998,"value":2779}," constraint, explanation ",{"type":993,"tag":1034,"props":2781,"children":2782},{"style":1577},[2783],{"type":998,"value":1981},{"type":993,"tag":1034,"props":2785,"children":2786},{"style":1201},[2787],{"type":998,"value":2788}," constraints.items():\n",{"type":993,"tag":1034,"props":2790,"children":2791},{"class":1036,"line":173},[2792,2796,2800,2804,2808,2812,2817,2822,2826,2831,2835,2840,2844,2848],{"type":993,"tag":1034,"props":2793,"children":2794},{"style":1195},[2795],{"type":998,"value":2011},{"type":993,"tag":1034,"props":2797,"children":2798},{"style":1201},[2799],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2801,"children":2802},{"style":1577},[2803],{"type":998,"value":2020},{"type":993,"tag":1034,"props":2805,"children":2806},{"style":1207},[2807],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2809,"children":2810},{"style":1195},[2811],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2813,"children":2814},{"style":1201},[2815],{"type":998,"value":2816},"constraint",{"type":993,"tag":1034,"props":2818,"children":2819},{"style":1577},[2820],{"type":998,"value":2821},":\u003C20",{"type":993,"tag":1034,"props":2823,"children":2824},{"style":1195},[2825],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2827,"children":2828},{"style":1207},[2829],{"type":998,"value":2830}," → ",{"type":993,"tag":1034,"props":2832,"children":2833},{"style":1195},[2834],{"type":998,"value":2030},{"type":993,"tag":1034,"props":2836,"children":2837},{"style":1201},[2838],{"type":998,"value":2839},"explanation",{"type":993,"tag":1034,"props":2841,"children":2842},{"style":1195},[2843],{"type":998,"value":2040},{"type":993,"tag":1034,"props":2845,"children":2846},{"style":1207},[2847],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2849,"children":2850},{"style":1201},[2851],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2853,"children":2854},{"class":1036,"line":182},[2855],{"type":993,"tag":1034,"props":2856,"children":2857},{"style":1201},[2858],{"type":998,"value":1622},{"type":993,"tag":1034,"props":2860,"children":2861},{"class":1036,"line":191},[2862,2866,2870,2874,2879,2884],{"type":993,"tag":1034,"props":2863,"children":2864},{"style":1195},[2865],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2867,"children":2868},{"style":1201},[2869],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2871,"children":2872},{"style":1207},[2873],{"type":998,"value":2097},{"type":993,"tag":1034,"props":2875,"children":2876},{"style":1195},[2877],{"type":998,"value":2878},"\\n",{"type":993,"tag":1034,"props":2880,"children":2881},{"style":1207},[2882],{"type":998,"value":2883},"Best Practices:\"",{"type":993,"tag":1034,"props":2885,"children":2886},{"style":1201},[2887],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2889,"children":2890},{"class":1036,"line":201},[2891,2895,2899,2904],{"type":993,"tag":1034,"props":2892,"children":2893},{"style":1195},[2894],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2896,"children":2897},{"style":1201},[2898],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2900,"children":2901},{"style":1207},[2902],{"type":998,"value":2903},"\"• Use exact versions (==) for production deployments\"",{"type":993,"tag":1034,"props":2905,"children":2906},{"style":1201},[2907],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2909,"children":2910},{"class":1036,"line":210},[2911,2915,2919,2924],{"type":993,"tag":1034,"props":2912,"children":2913},{"style":1195},[2914],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2916,"children":2917},{"style":1201},[2918],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2920,"children":2921},{"style":1207},[2922],{"type":998,"value":2923},"\"• Use ranges (>=,\u003C) for library development\"",{"type":993,"tag":1034,"props":2925,"children":2926},{"style":1201},[2927],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2929,"children":2930},{"class":1036,"line":219},[2931,2935,2939,2944],{"type":993,"tag":1034,"props":2932,"children":2933},{"style":1195},[2934],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2936,"children":2937},{"style":1201},[2938],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2940,"children":2941},{"style":1207},[2942],{"type":998,"value":2943},"\"• Pin major versions to avoid breaking changes\"",{"type":993,"tag":1034,"props":2945,"children":2946},{"style":1201},[2947],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2949,"children":2950},{"class":1036,"line":228},[2951,2955,2959,2964],{"type":993,"tag":1034,"props":2952,"children":2953},{"style":1195},[2954],{"type":998,"value":2478},{"type":993,"tag":1034,"props":2956,"children":2957},{"style":1201},[2958],{"type":998,"value":1204},{"type":993,"tag":1034,"props":2960,"children":2961},{"style":1207},[2962],{"type":998,"value":2963},"\"• Regular updates with testing for security\"",{"type":993,"tag":1034,"props":2965,"children":2966},{"style":1201},[2967],{"type":998,"value":1215},{"type":993,"tag":1034,"props":2969,"children":2970},{"class":1036,"line":238},[2971],{"type":993,"tag":1034,"props":2972,"children":2973},{"emptyLinePlaceholder":13},[2974],{"type":998,"value":1051},{"type":993,"tag":1034,"props":2976,"children":2977},{"class":1036,"line":247},[2978],{"type":993,"tag":1034,"props":2979,"children":2980},{"style":1201},[2981],{"type":998,"value":2982},"explain_version_constraints()\n",{"type":993,"tag":1257,"props":2984,"children":2986},{"id":2985},"virtual-environments",[2987],{"type":998,"value":2988},"⚡ Virtual Environments",{"type":993,"tag":1001,"props":2990,"children":2991},{},[2992],{"type":998,"value":2993},"Virtual environments provide isolated Python installations that prevent package conflicts between different projects.",{"type":993,"tag":1543,"props":2995,"children":2997},{"id":2996},"creating-and-managing-virtual-environments",[2998],{"type":998,"value":2999},"Creating and Managing Virtual Environments",{"type":993,"tag":1001,"props":3001,"children":3002},{},[3003],{"type":998,"value":3004},"Virtual environments ensure each project has its own dependencies without interfering with other projects.",{"type":993,"tag":1021,"props":3006,"children":3007},{},[3008],{"type":993,"tag":1025,"props":3009,"children":3011},{"className":1027,"code":3010,"language":6,"meta":8,"style":8},"import os\nimport subprocess\nimport sys\n\ndef demonstrate_venv_commands():\n    \"\"\"Show virtual environment commands and their purposes\"\"\"\n    \n    commands = {\n        \"Create Environment\": {\n            \"Windows\": \"python -m venv myproject_env\",\n            \"macOS/Linux\": \"python3 -m venv myproject_env\",\n            \"Purpose\": \"Creates isolated Python environment\"\n        },\n        \"Activate Environment\": {\n            \"Windows\": \"myproject_env\\\\Scripts\\\\activate\",\n            \"macOS/Linux\": \"source myproject_env/bin/activate\",\n            \"Purpose\": \"Switches to virtual environment\"\n        },\n        \"Install Packages\": {\n            \"Command\": \"pip install flask requests\",\n            \"Purpose\": \"Installs packages in virtual environment only\"\n        },\n        \"Save Requirements\": {\n            \"Command\": \"pip freeze > requirements.txt\",\n            \"Purpose\": \"Creates list of installed packages\"\n        },\n        \"Install from Requirements\": {\n            \"Command\": \"pip install -r requirements.txt\",\n            \"Purpose\": \"Installs all packages from requirements file\"\n        },\n        \"Deactivate Environment\": {\n            \"Command\": \"deactivate\",\n            \"Purpose\": \"Returns to global Python environment\"\n        }\n    }\n    \n    for action, details in commands.items():\n        print(f\"{action}:\")\n        if \"Windows\" in details:\n            print(f\"  Windows: {details['Windows']}\")\n            print(f\"  macOS/Linux: {details['macOS/Linux']}\")\n        else:\n            print(f\"  Command: {details['Command']}\")\n        print(f\"  Purpose: {details['Purpose']}\")\n        print()\n\ndemonstrate_venv_commands()\n",[3012],{"type":993,"tag":1007,"props":3013,"children":3014},{"__ignoreMap":8},[3015,3028,3040,3052,3059,3075,3083,3090,3106,3118,3139,3160,3177,3184,3196,3235,3255,3271,3278,3290,3311,3327,3334,3346,3366,3382,3389,3401,3421,3437,3444,3456,3476,3492,3499,3506,3513,3534,3575,3598,3649,3698,3710,3759,3808,3819,3826],{"type":993,"tag":1034,"props":3016,"children":3017},{"class":1036,"line":12},[3018,3023],{"type":993,"tag":1034,"props":3019,"children":3020},{"style":1577},[3021],{"type":998,"value":3022},"import",{"type":993,"tag":1034,"props":3024,"children":3025},{"style":1201},[3026],{"type":998,"value":3027}," os\n",{"type":993,"tag":1034,"props":3029,"children":3030},{"class":1036,"line":27},[3031,3035],{"type":993,"tag":1034,"props":3032,"children":3033},{"style":1577},[3034],{"type":998,"value":3022},{"type":993,"tag":1034,"props":3036,"children":3037},{"style":1201},[3038],{"type":998,"value":3039}," subprocess\n",{"type":993,"tag":1034,"props":3041,"children":3042},{"class":1036,"line":36},[3043,3047],{"type":993,"tag":1034,"props":3044,"children":3045},{"style":1577},[3046],{"type":998,"value":3022},{"type":993,"tag":1034,"props":3048,"children":3049},{"style":1201},[3050],{"type":998,"value":3051}," sys\n",{"type":993,"tag":1034,"props":3053,"children":3054},{"class":1036,"line":45},[3055],{"type":993,"tag":1034,"props":3056,"children":3057},{"emptyLinePlaceholder":13},[3058],{"type":998,"value":1051},{"type":993,"tag":1034,"props":3060,"children":3061},{"class":1036,"line":54},[3062,3066,3071],{"type":993,"tag":1034,"props":3063,"children":3064},{"style":1577},[3065],{"type":998,"value":1580},{"type":993,"tag":1034,"props":3067,"children":3068},{"style":1583},[3069],{"type":998,"value":3070}," demonstrate_venv_commands",{"type":993,"tag":1034,"props":3072,"children":3073},{"style":1201},[3074],{"type":998,"value":2521},{"type":993,"tag":1034,"props":3076,"children":3077},{"class":1036,"line":63},[3078],{"type":993,"tag":1034,"props":3079,"children":3080},{"style":1207},[3081],{"type":998,"value":3082},"    \"\"\"Show virtual environment commands and their purposes\"\"\"\n",{"type":993,"tag":1034,"props":3084,"children":3085},{"class":1036,"line":72},[3086],{"type":993,"tag":1034,"props":3087,"children":3088},{"style":1201},[3089],{"type":998,"value":1622},{"type":993,"tag":1034,"props":3091,"children":3092},{"class":1036,"line":81},[3093,3098,3102],{"type":993,"tag":1034,"props":3094,"children":3095},{"style":1201},[3096],{"type":998,"value":3097},"    commands ",{"type":993,"tag":1034,"props":3099,"children":3100},{"style":1577},[3101],{"type":998,"value":1596},{"type":993,"tag":1034,"props":3103,"children":3104},{"style":1201},[3105],{"type":998,"value":1639},{"type":993,"tag":1034,"props":3107,"children":3108},{"class":1036,"line":91},[3109,3114],{"type":993,"tag":1034,"props":3110,"children":3111},{"style":1207},[3112],{"type":998,"value":3113},"        \"Create Environment\"",{"type":993,"tag":1034,"props":3115,"children":3116},{"style":1201},[3117],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3119,"children":3120},{"class":1036,"line":100},[3121,3126,3130,3135],{"type":993,"tag":1034,"props":3122,"children":3123},{"style":1207},[3124],{"type":998,"value":3125},"            \"Windows\"",{"type":993,"tag":1034,"props":3127,"children":3128},{"style":1201},[3129],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3131,"children":3132},{"style":1207},[3133],{"type":998,"value":3134},"\"python -m venv myproject_env\"",{"type":993,"tag":1034,"props":3136,"children":3137},{"style":1201},[3138],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3140,"children":3141},{"class":1036,"line":109},[3142,3147,3151,3156],{"type":993,"tag":1034,"props":3143,"children":3144},{"style":1207},[3145],{"type":998,"value":3146},"            \"macOS/Linux\"",{"type":993,"tag":1034,"props":3148,"children":3149},{"style":1201},[3150],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3152,"children":3153},{"style":1207},[3154],{"type":998,"value":3155},"\"python3 -m venv myproject_env\"",{"type":993,"tag":1034,"props":3157,"children":3158},{"style":1201},[3159],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3161,"children":3162},{"class":1036,"line":118},[3163,3168,3172],{"type":993,"tag":1034,"props":3164,"children":3165},{"style":1207},[3166],{"type":998,"value":3167},"            \"Purpose\"",{"type":993,"tag":1034,"props":3169,"children":3170},{"style":1201},[3171],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3173,"children":3174},{"style":1207},[3175],{"type":998,"value":3176},"\"Creates isolated Python environment\"\n",{"type":993,"tag":1034,"props":3178,"children":3179},{"class":1036,"line":127},[3180],{"type":993,"tag":1034,"props":3181,"children":3182},{"style":1201},[3183],{"type":998,"value":1751},{"type":993,"tag":1034,"props":3185,"children":3186},{"class":1036,"line":136},[3187,3192],{"type":993,"tag":1034,"props":3188,"children":3189},{"style":1207},[3190],{"type":998,"value":3191},"        \"Activate Environment\"",{"type":993,"tag":1034,"props":3193,"children":3194},{"style":1201},[3195],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3197,"children":3198},{"class":1036,"line":146},[3199,3203,3207,3212,3217,3222,3226,3231],{"type":993,"tag":1034,"props":3200,"children":3201},{"style":1207},[3202],{"type":998,"value":3125},{"type":993,"tag":1034,"props":3204,"children":3205},{"style":1201},[3206],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3208,"children":3209},{"style":1207},[3210],{"type":998,"value":3211},"\"myproject_env",{"type":993,"tag":1034,"props":3213,"children":3214},{"style":1195},[3215],{"type":998,"value":3216},"\\\\",{"type":993,"tag":1034,"props":3218,"children":3219},{"style":1207},[3220],{"type":998,"value":3221},"Scripts",{"type":993,"tag":1034,"props":3223,"children":3224},{"style":1195},[3225],{"type":998,"value":3216},{"type":993,"tag":1034,"props":3227,"children":3228},{"style":1207},[3229],{"type":998,"value":3230},"activate\"",{"type":993,"tag":1034,"props":3232,"children":3233},{"style":1201},[3234],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3236,"children":3237},{"class":1036,"line":155},[3238,3242,3246,3251],{"type":993,"tag":1034,"props":3239,"children":3240},{"style":1207},[3241],{"type":998,"value":3146},{"type":993,"tag":1034,"props":3243,"children":3244},{"style":1201},[3245],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3247,"children":3248},{"style":1207},[3249],{"type":998,"value":3250},"\"source myproject_env/bin/activate\"",{"type":993,"tag":1034,"props":3252,"children":3253},{"style":1201},[3254],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3256,"children":3257},{"class":1036,"line":164},[3258,3262,3266],{"type":993,"tag":1034,"props":3259,"children":3260},{"style":1207},[3261],{"type":998,"value":3167},{"type":993,"tag":1034,"props":3263,"children":3264},{"style":1201},[3265],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3267,"children":3268},{"style":1207},[3269],{"type":998,"value":3270},"\"Switches to virtual environment\"\n",{"type":993,"tag":1034,"props":3272,"children":3273},{"class":1036,"line":173},[3274],{"type":993,"tag":1034,"props":3275,"children":3276},{"style":1201},[3277],{"type":998,"value":1751},{"type":993,"tag":1034,"props":3279,"children":3280},{"class":1036,"line":182},[3281,3286],{"type":993,"tag":1034,"props":3282,"children":3283},{"style":1207},[3284],{"type":998,"value":3285},"        \"Install Packages\"",{"type":993,"tag":1034,"props":3287,"children":3288},{"style":1201},[3289],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3291,"children":3292},{"class":1036,"line":191},[3293,3298,3302,3307],{"type":993,"tag":1034,"props":3294,"children":3295},{"style":1207},[3296],{"type":998,"value":3297},"            \"Command\"",{"type":993,"tag":1034,"props":3299,"children":3300},{"style":1201},[3301],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3303,"children":3304},{"style":1207},[3305],{"type":998,"value":3306},"\"pip install flask requests\"",{"type":993,"tag":1034,"props":3308,"children":3309},{"style":1201},[3310],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3312,"children":3313},{"class":1036,"line":201},[3314,3318,3322],{"type":993,"tag":1034,"props":3315,"children":3316},{"style":1207},[3317],{"type":998,"value":3167},{"type":993,"tag":1034,"props":3319,"children":3320},{"style":1201},[3321],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3323,"children":3324},{"style":1207},[3325],{"type":998,"value":3326},"\"Installs packages in virtual environment only\"\n",{"type":993,"tag":1034,"props":3328,"children":3329},{"class":1036,"line":210},[3330],{"type":993,"tag":1034,"props":3331,"children":3332},{"style":1201},[3333],{"type":998,"value":1751},{"type":993,"tag":1034,"props":3335,"children":3336},{"class":1036,"line":219},[3337,3342],{"type":993,"tag":1034,"props":3338,"children":3339},{"style":1207},[3340],{"type":998,"value":3341},"        \"Save Requirements\"",{"type":993,"tag":1034,"props":3343,"children":3344},{"style":1201},[3345],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3347,"children":3348},{"class":1036,"line":228},[3349,3353,3357,3362],{"type":993,"tag":1034,"props":3350,"children":3351},{"style":1207},[3352],{"type":998,"value":3297},{"type":993,"tag":1034,"props":3354,"children":3355},{"style":1201},[3356],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3358,"children":3359},{"style":1207},[3360],{"type":998,"value":3361},"\"pip freeze > requirements.txt\"",{"type":993,"tag":1034,"props":3363,"children":3364},{"style":1201},[3365],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3367,"children":3368},{"class":1036,"line":238},[3369,3373,3377],{"type":993,"tag":1034,"props":3370,"children":3371},{"style":1207},[3372],{"type":998,"value":3167},{"type":993,"tag":1034,"props":3374,"children":3375},{"style":1201},[3376],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3378,"children":3379},{"style":1207},[3380],{"type":998,"value":3381},"\"Creates list of installed packages\"\n",{"type":993,"tag":1034,"props":3383,"children":3384},{"class":1036,"line":247},[3385],{"type":993,"tag":1034,"props":3386,"children":3387},{"style":1201},[3388],{"type":998,"value":1751},{"type":993,"tag":1034,"props":3390,"children":3391},{"class":1036,"line":256},[3392,3397],{"type":993,"tag":1034,"props":3393,"children":3394},{"style":1207},[3395],{"type":998,"value":3396},"        \"Install from Requirements\"",{"type":993,"tag":1034,"props":3398,"children":3399},{"style":1201},[3400],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3402,"children":3403},{"class":1036,"line":265},[3404,3408,3412,3417],{"type":993,"tag":1034,"props":3405,"children":3406},{"style":1207},[3407],{"type":998,"value":3297},{"type":993,"tag":1034,"props":3409,"children":3410},{"style":1201},[3411],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3413,"children":3414},{"style":1207},[3415],{"type":998,"value":3416},"\"pip install -r requirements.txt\"",{"type":993,"tag":1034,"props":3418,"children":3419},{"style":1201},[3420],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3422,"children":3423},{"class":1036,"line":274},[3424,3428,3432],{"type":993,"tag":1034,"props":3425,"children":3426},{"style":1207},[3427],{"type":998,"value":3167},{"type":993,"tag":1034,"props":3429,"children":3430},{"style":1201},[3431],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3433,"children":3434},{"style":1207},[3435],{"type":998,"value":3436},"\"Installs all packages from requirements file\"\n",{"type":993,"tag":1034,"props":3438,"children":3439},{"class":1036,"line":284},[3440],{"type":993,"tag":1034,"props":3441,"children":3442},{"style":1201},[3443],{"type":998,"value":1751},{"type":993,"tag":1034,"props":3445,"children":3446},{"class":1036,"line":293},[3447,3452],{"type":993,"tag":1034,"props":3448,"children":3449},{"style":1207},[3450],{"type":998,"value":3451},"        \"Deactivate Environment\"",{"type":993,"tag":1034,"props":3453,"children":3454},{"style":1201},[3455],{"type":998,"value":1652},{"type":993,"tag":1034,"props":3457,"children":3458},{"class":1036,"line":302},[3459,3463,3467,3472],{"type":993,"tag":1034,"props":3460,"children":3461},{"style":1207},[3462],{"type":998,"value":3297},{"type":993,"tag":1034,"props":3464,"children":3465},{"style":1201},[3466],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3468,"children":3469},{"style":1207},[3470],{"type":998,"value":3471},"\"deactivate\"",{"type":993,"tag":1034,"props":3473,"children":3474},{"style":1201},[3475],{"type":998,"value":1675},{"type":993,"tag":1034,"props":3477,"children":3478},{"class":1036,"line":311},[3479,3483,3487],{"type":993,"tag":1034,"props":3480,"children":3481},{"style":1207},[3482],{"type":998,"value":3167},{"type":993,"tag":1034,"props":3484,"children":3485},{"style":1201},[3486],{"type":998,"value":1665},{"type":993,"tag":1034,"props":3488,"children":3489},{"style":1207},[3490],{"type":998,"value":3491},"\"Returns to global Python environment\"\n",{"type":993,"tag":1034,"props":3493,"children":3494},{"class":1036,"line":320},[3495],{"type":993,"tag":1034,"props":3496,"children":3497},{"style":1201},[3498],{"type":998,"value":1948},{"type":993,"tag":1034,"props":3500,"children":3501},{"class":1036,"line":329},[3502],{"type":993,"tag":1034,"props":3503,"children":3504},{"style":1201},[3505],{"type":998,"value":1956},{"type":993,"tag":1034,"props":3507,"children":3508},{"class":1036,"line":338},[3509],{"type":993,"tag":1034,"props":3510,"children":3511},{"style":1201},[3512],{"type":998,"value":1622},{"type":993,"tag":1034,"props":3514,"children":3515},{"class":1036,"line":347},[3516,3520,3525,3529],{"type":993,"tag":1034,"props":3517,"children":3518},{"style":1577},[3519],{"type":998,"value":2774},{"type":993,"tag":1034,"props":3521,"children":3522},{"style":1201},[3523],{"type":998,"value":3524}," action, details ",{"type":993,"tag":1034,"props":3526,"children":3527},{"style":1577},[3528],{"type":998,"value":1981},{"type":993,"tag":1034,"props":3530,"children":3531},{"style":1201},[3532],{"type":998,"value":3533}," commands.items():\n",{"type":993,"tag":1034,"props":3535,"children":3536},{"class":1036,"line":356},[3537,3541,3545,3549,3553,3557,3562,3566,3571],{"type":993,"tag":1034,"props":3538,"children":3539},{"style":1195},[3540],{"type":998,"value":2011},{"type":993,"tag":1034,"props":3542,"children":3543},{"style":1201},[3544],{"type":998,"value":1204},{"type":993,"tag":1034,"props":3546,"children":3547},{"style":1577},[3548],{"type":998,"value":2020},{"type":993,"tag":1034,"props":3550,"children":3551},{"style":1207},[3552],{"type":998,"value":2097},{"type":993,"tag":1034,"props":3554,"children":3555},{"style":1195},[3556],{"type":998,"value":2030},{"type":993,"tag":1034,"props":3558,"children":3559},{"style":1201},[3560],{"type":998,"value":3561},"action",{"type":993,"tag":1034,"props":3563,"children":3564},{"style":1195},[3565],{"type":998,"value":2040},{"type":993,"tag":1034,"props":3567,"children":3568},{"style":1207},[3569],{"type":998,"value":3570},":\"",{"type":993,"tag":1034,"props":3572,"children":3573},{"style":1201},[3574],{"type":998,"value":1215},{"type":993,"tag":1034,"props":3576,"children":3577},{"class":1036,"line":365},[3578,3583,3588,3593],{"type":993,"tag":1034,"props":3579,"children":3580},{"style":1577},[3581],{"type":998,"value":3582},"        if",{"type":993,"tag":1034,"props":3584,"children":3585},{"style":1207},[3586],{"type":998,"value":3587}," \"Windows\"",{"type":993,"tag":1034,"props":3589,"children":3590},{"style":1577},[3591],{"type":998,"value":3592}," in",{"type":993,"tag":1034,"props":3594,"children":3595},{"style":1201},[3596],{"type":998,"value":3597}," details:\n",{"type":993,"tag":1034,"props":3599,"children":3600},{"class":1036,"line":374},[3601,3606,3610,3614,3619,3623,3628,3633,3637,3641,3645],{"type":993,"tag":1034,"props":3602,"children":3603},{"style":1195},[3604],{"type":998,"value":3605},"            print",{"type":993,"tag":1034,"props":3607,"children":3608},{"style":1201},[3609],{"type":998,"value":1204},{"type":993,"tag":1034,"props":3611,"children":3612},{"style":1577},[3613],{"type":998,"value":2020},{"type":993,"tag":1034,"props":3615,"children":3616},{"style":1207},[3617],{"type":998,"value":3618},"\"  Windows: ",{"type":993,"tag":1034,"props":3620,"children":3621},{"style":1195},[3622],{"type":998,"value":2030},{"type":993,"tag":1034,"props":3624,"children":3625},{"style":1201},[3626],{"type":998,"value":3627},"details[",{"type":993,"tag":1034,"props":3629,"children":3630},{"style":1207},[3631],{"type":998,"value":3632},"'Windows'",{"type":993,"tag":1034,"props":3634,"children":3635},{"style":1201},[3636],{"type":998,"value":2088},{"type":993,"tag":1034,"props":3638,"children":3639},{"style":1195},[3640],{"type":998,"value":2040},{"type":993,"tag":1034,"props":3642,"children":3643},{"style":1207},[3644],{"type":998,"value":2097},{"type":993,"tag":1034,"props":3646,"children":3647},{"style":1201},[3648],{"type":998,"value":1215},{"type":993,"tag":1034,"props":3650,"children":3651},{"class":1036,"line":384},[3652,3656,3660,3664,3669,3673,3677,3682,3686,3690,3694],{"type":993,"tag":1034,"props":3653,"children":3654},{"style":1195},[3655],{"type":998,"value":3605},{"type":993,"tag":1034,"props":3657,"children":3658},{"style":1201},[3659],{"type":998,"value":1204},{"type":993,"tag":1034,"props":3661,"children":3662},{"style":1577},[3663],{"type":998,"value":2020},{"type":993,"tag":1034,"props":3665,"children":3666},{"style":1207},[3667],{"type":998,"value":3668},"\"  macOS/Linux: ",{"type":993,"tag":1034,"props":3670,"children":3671},{"style":1195},[3672],{"type":998,"value":2030},{"type":993,"tag":1034,"props":3674,"children":3675},{"style":1201},[3676],{"type":998,"value":3627},{"type":993,"tag":1034,"props":3678,"children":3679},{"style":1207},[3680],{"type":998,"value":3681},"'macOS/Linux'",{"type":993,"tag":1034,"props":3683,"children":3684},{"style":1201},[3685],{"type":998,"value":2088},{"type":993,"tag":1034,"props":3687,"children":3688},{"style":1195},[3689],{"type":998,"value":2040},{"type":993,"tag":1034,"props":3691,"children":3692},{"style":1207},[3693],{"type":998,"value":2097},{"type":993,"tag":1034,"props":3695,"children":3696},{"style":1201},[3697],{"type":998,"value":1215},{"type":993,"tag":1034,"props":3699,"children":3700},{"class":1036,"line":393},[3701,3706],{"type":993,"tag":1034,"props":3702,"children":3703},{"style":1577},[3704],{"type":998,"value":3705},"        else",{"type":993,"tag":1034,"props":3707,"children":3708},{"style":1201},[3709],{"type":998,"value":2312},{"type":993,"tag":1034,"props":3711,"children":3712},{"class":1036,"line":402},[3713,3717,3721,3725,3730,3734,3738,3743,3747,3751,3755],{"type":993,"tag":1034,"props":3714,"children":3715},{"style":1195},[3716],{"type":998,"value":3605},{"type":993,"tag":1034,"props":3718,"children":3719},{"style":1201},[3720],{"type":998,"value":1204},{"type":993,"tag":1034,"props":3722,"children":3723},{"style":1577},[3724],{"type":998,"value":2020},{"type":993,"tag":1034,"props":3726,"children":3727},{"style":1207},[3728],{"type":998,"value":3729},"\"  Command: ",{"type":993,"tag":1034,"props":3731,"children":3732},{"style":1195},[3733],{"type":998,"value":2030},{"type":993,"tag":1034,"props":3735,"children":3736},{"style":1201},[3737],{"type":998,"value":3627},{"type":993,"tag":1034,"props":3739,"children":3740},{"style":1207},[3741],{"type":998,"value":3742},"'Command'",{"type":993,"tag":1034,"props":3744,"children":3745},{"style":1201},[3746],{"type":998,"value":2088},{"type":993,"tag":1034,"props":3748,"children":3749},{"style":1195},[3750],{"type":998,"value":2040},{"type":993,"tag":1034,"props":3752,"children":3753},{"style":1207},[3754],{"type":998,"value":2097},{"type":993,"tag":1034,"props":3756,"children":3757},{"style":1201},[3758],{"type":998,"value":1215},{"type":993,"tag":1034,"props":3760,"children":3761},{"class":1036,"line":411},[3762,3766,3770,3774,3779,3783,3787,3792,3796,3800,3804],{"type":993,"tag":1034,"props":3763,"children":3764},{"style":1195},[3765],{"type":998,"value":2011},{"type":993,"tag":1034,"props":3767,"children":3768},{"style":1201},[3769],{"type":998,"value":1204},{"type":993,"tag":1034,"props":3771,"children":3772},{"style":1577},[3773],{"type":998,"value":2020},{"type":993,"tag":1034,"props":3775,"children":3776},{"style":1207},[3777],{"type":998,"value":3778},"\"  Purpose: ",{"type":993,"tag":1034,"props":3780,"children":3781},{"style":1195},[3782],{"type":998,"value":2030},{"type":993,"tag":1034,"props":3784,"children":3785},{"style":1201},[3786],{"type":998,"value":3627},{"type":993,"tag":1034,"props":3788,"children":3789},{"style":1207},[3790],{"type":998,"value":3791},"'Purpose'",{"type":993,"tag":1034,"props":3793,"children":3794},{"style":1201},[3795],{"type":998,"value":2088},{"type":993,"tag":1034,"props":3797,"children":3798},{"style":1195},[3799],{"type":998,"value":2040},{"type":993,"tag":1034,"props":3801,"children":3802},{"style":1207},[3803],{"type":998,"value":2097},{"type":993,"tag":1034,"props":3805,"children":3806},{"style":1201},[3807],{"type":998,"value":1215},{"type":993,"tag":1034,"props":3809,"children":3810},{"class":1036,"line":420},[3811,3815],{"type":993,"tag":1034,"props":3812,"children":3813},{"style":1195},[3814],{"type":998,"value":2011},{"type":993,"tag":1034,"props":3816,"children":3817},{"style":1201},[3818],{"type":998,"value":2483},{"type":993,"tag":1034,"props":3820,"children":3821},{"class":1036,"line":429},[3822],{"type":993,"tag":1034,"props":3823,"children":3824},{"emptyLinePlaceholder":13},[3825],{"type":998,"value":1051},{"type":993,"tag":1034,"props":3827,"children":3828},{"class":1036,"line":438},[3829],{"type":993,"tag":1034,"props":3830,"children":3831},{"style":1201},[3832],{"type":998,"value":3833},"demonstrate_venv_commands()\n",{"type":993,"tag":1543,"props":3835,"children":3837},{"id":3836},"requirements-file-management",[3838],{"type":998,"value":3839},"Requirements File Management",{"type":993,"tag":1001,"props":3841,"children":3842},{},[3843],{"type":998,"value":3844},"Requirements files define project dependencies for reproducible installations across different environments.",{"type":993,"tag":1021,"props":3846,"children":3847},{},[3848],{"type":993,"tag":1025,"props":3849,"children":3851},{"className":1027,"code":3850,"language":6,"meta":8,"style":8},"def create_requirements_example():\n    \"\"\"Create example requirements.txt content\"\"\"\n    \n    requirements_content = \"\"\"\n# Web framework\nflask==2.3.2\ndjango>=4.0,\u003C5.0\n\n# Data processing\npandas==2.0.3\nnumpy>=1.20.0\n\n# Development tools\npytest==7.4.0\nblack==23.3.0\n\n# Optional dependencies\nmatplotlib==3.7.2  # For data visualization\nrequests==2.31.0   # For HTTP requests\n\n# Development-only packages (use with pip install -r requirements-dev.txt)\n# pytest-cov==4.1.0\n# flake8==6.0.0\n\"\"\".strip()\n    \n    print(\"Example requirements.txt:\")\n    print(requirements_content)\n    print(\"\\nUsage commands:\")\n    print(\"• Install all: pip install -r requirements.txt\")\n    print(\"• Generate: pip freeze > requirements.txt\")\n    print(\"• Update: pip install --upgrade -r requirements.txt\")\n\ncreate_requirements_example()\n",[3852],{"type":993,"tag":1007,"props":3853,"children":3854},{"__ignoreMap":8},[3855,3871,3879,3886,3903,3911,3919,3927,3934,3942,3950,3958,3965,3973,3981,3989,3996,4004,4012,4020,4027,4035,4043,4051,4064,4071,4091,4103,4131,4151,4171,4191,4198],{"type":993,"tag":1034,"props":3856,"children":3857},{"class":1036,"line":12},[3858,3862,3867],{"type":993,"tag":1034,"props":3859,"children":3860},{"style":1577},[3861],{"type":998,"value":1580},{"type":993,"tag":1034,"props":3863,"children":3864},{"style":1583},[3865],{"type":998,"value":3866}," create_requirements_example",{"type":993,"tag":1034,"props":3868,"children":3869},{"style":1201},[3870],{"type":998,"value":2521},{"type":993,"tag":1034,"props":3872,"children":3873},{"class":1036,"line":27},[3874],{"type":993,"tag":1034,"props":3875,"children":3876},{"style":1207},[3877],{"type":998,"value":3878},"    \"\"\"Create example requirements.txt content\"\"\"\n",{"type":993,"tag":1034,"props":3880,"children":3881},{"class":1036,"line":36},[3882],{"type":993,"tag":1034,"props":3883,"children":3884},{"style":1201},[3885],{"type":998,"value":1622},{"type":993,"tag":1034,"props":3887,"children":3888},{"class":1036,"line":45},[3889,3894,3898],{"type":993,"tag":1034,"props":3890,"children":3891},{"style":1201},[3892],{"type":998,"value":3893},"    requirements_content ",{"type":993,"tag":1034,"props":3895,"children":3896},{"style":1577},[3897],{"type":998,"value":1596},{"type":993,"tag":1034,"props":3899,"children":3900},{"style":1207},[3901],{"type":998,"value":3902}," \"\"\"\n",{"type":993,"tag":1034,"props":3904,"children":3905},{"class":1036,"line":54},[3906],{"type":993,"tag":1034,"props":3907,"children":3908},{"style":1207},[3909],{"type":998,"value":3910},"# Web framework\n",{"type":993,"tag":1034,"props":3912,"children":3913},{"class":1036,"line":63},[3914],{"type":993,"tag":1034,"props":3915,"children":3916},{"style":1207},[3917],{"type":998,"value":3918},"flask==2.3.2\n",{"type":993,"tag":1034,"props":3920,"children":3921},{"class":1036,"line":72},[3922],{"type":993,"tag":1034,"props":3923,"children":3924},{"style":1207},[3925],{"type":998,"value":3926},"django>=4.0,\u003C5.0\n",{"type":993,"tag":1034,"props":3928,"children":3929},{"class":1036,"line":81},[3930],{"type":993,"tag":1034,"props":3931,"children":3932},{"emptyLinePlaceholder":13},[3933],{"type":998,"value":1051},{"type":993,"tag":1034,"props":3935,"children":3936},{"class":1036,"line":91},[3937],{"type":993,"tag":1034,"props":3938,"children":3939},{"style":1207},[3940],{"type":998,"value":3941},"# Data processing\n",{"type":993,"tag":1034,"props":3943,"children":3944},{"class":1036,"line":100},[3945],{"type":993,"tag":1034,"props":3946,"children":3947},{"style":1207},[3948],{"type":998,"value":3949},"pandas==2.0.3\n",{"type":993,"tag":1034,"props":3951,"children":3952},{"class":1036,"line":109},[3953],{"type":993,"tag":1034,"props":3954,"children":3955},{"style":1207},[3956],{"type":998,"value":3957},"numpy>=1.20.0\n",{"type":993,"tag":1034,"props":3959,"children":3960},{"class":1036,"line":118},[3961],{"type":993,"tag":1034,"props":3962,"children":3963},{"emptyLinePlaceholder":13},[3964],{"type":998,"value":1051},{"type":993,"tag":1034,"props":3966,"children":3967},{"class":1036,"line":127},[3968],{"type":993,"tag":1034,"props":3969,"children":3970},{"style":1207},[3971],{"type":998,"value":3972},"# Development tools\n",{"type":993,"tag":1034,"props":3974,"children":3975},{"class":1036,"line":136},[3976],{"type":993,"tag":1034,"props":3977,"children":3978},{"style":1207},[3979],{"type":998,"value":3980},"pytest==7.4.0\n",{"type":993,"tag":1034,"props":3982,"children":3983},{"class":1036,"line":146},[3984],{"type":993,"tag":1034,"props":3985,"children":3986},{"style":1207},[3987],{"type":998,"value":3988},"black==23.3.0\n",{"type":993,"tag":1034,"props":3990,"children":3991},{"class":1036,"line":155},[3992],{"type":993,"tag":1034,"props":3993,"children":3994},{"emptyLinePlaceholder":13},[3995],{"type":998,"value":1051},{"type":993,"tag":1034,"props":3997,"children":3998},{"class":1036,"line":164},[3999],{"type":993,"tag":1034,"props":4000,"children":4001},{"style":1207},[4002],{"type":998,"value":4003},"# Optional dependencies\n",{"type":993,"tag":1034,"props":4005,"children":4006},{"class":1036,"line":173},[4007],{"type":993,"tag":1034,"props":4008,"children":4009},{"style":1207},[4010],{"type":998,"value":4011},"matplotlib==3.7.2  # For data visualization\n",{"type":993,"tag":1034,"props":4013,"children":4014},{"class":1036,"line":182},[4015],{"type":993,"tag":1034,"props":4016,"children":4017},{"style":1207},[4018],{"type":998,"value":4019},"requests==2.31.0   # For HTTP requests\n",{"type":993,"tag":1034,"props":4021,"children":4022},{"class":1036,"line":191},[4023],{"type":993,"tag":1034,"props":4024,"children":4025},{"emptyLinePlaceholder":13},[4026],{"type":998,"value":1051},{"type":993,"tag":1034,"props":4028,"children":4029},{"class":1036,"line":201},[4030],{"type":993,"tag":1034,"props":4031,"children":4032},{"style":1207},[4033],{"type":998,"value":4034},"# Development-only packages (use with pip install -r requirements-dev.txt)\n",{"type":993,"tag":1034,"props":4036,"children":4037},{"class":1036,"line":210},[4038],{"type":993,"tag":1034,"props":4039,"children":4040},{"style":1207},[4041],{"type":998,"value":4042},"# pytest-cov==4.1.0\n",{"type":993,"tag":1034,"props":4044,"children":4045},{"class":1036,"line":219},[4046],{"type":993,"tag":1034,"props":4047,"children":4048},{"style":1207},[4049],{"type":998,"value":4050},"# flake8==6.0.0\n",{"type":993,"tag":1034,"props":4052,"children":4053},{"class":1036,"line":228},[4054,4059],{"type":993,"tag":1034,"props":4055,"children":4056},{"style":1207},[4057],{"type":998,"value":4058},"\"\"\"",{"type":993,"tag":1034,"props":4060,"children":4061},{"style":1201},[4062],{"type":998,"value":4063},".strip()\n",{"type":993,"tag":1034,"props":4065,"children":4066},{"class":1036,"line":238},[4067],{"type":993,"tag":1034,"props":4068,"children":4069},{"style":1201},[4070],{"type":998,"value":1622},{"type":993,"tag":1034,"props":4072,"children":4073},{"class":1036,"line":247},[4074,4078,4082,4087],{"type":993,"tag":1034,"props":4075,"children":4076},{"style":1195},[4077],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4079,"children":4080},{"style":1201},[4081],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4083,"children":4084},{"style":1207},[4085],{"type":998,"value":4086},"\"Example requirements.txt:\"",{"type":993,"tag":1034,"props":4088,"children":4089},{"style":1201},[4090],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4092,"children":4093},{"class":1036,"line":256},[4094,4098],{"type":993,"tag":1034,"props":4095,"children":4096},{"style":1195},[4097],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4099,"children":4100},{"style":1201},[4101],{"type":998,"value":4102},"(requirements_content)\n",{"type":993,"tag":1034,"props":4104,"children":4105},{"class":1036,"line":265},[4106,4110,4114,4118,4122,4127],{"type":993,"tag":1034,"props":4107,"children":4108},{"style":1195},[4109],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4111,"children":4112},{"style":1201},[4113],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4115,"children":4116},{"style":1207},[4117],{"type":998,"value":2097},{"type":993,"tag":1034,"props":4119,"children":4120},{"style":1195},[4121],{"type":998,"value":2878},{"type":993,"tag":1034,"props":4123,"children":4124},{"style":1207},[4125],{"type":998,"value":4126},"Usage commands:\"",{"type":993,"tag":1034,"props":4128,"children":4129},{"style":1201},[4130],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4132,"children":4133},{"class":1036,"line":274},[4134,4138,4142,4147],{"type":993,"tag":1034,"props":4135,"children":4136},{"style":1195},[4137],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4139,"children":4140},{"style":1201},[4141],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4143,"children":4144},{"style":1207},[4145],{"type":998,"value":4146},"\"• Install all: pip install -r requirements.txt\"",{"type":993,"tag":1034,"props":4148,"children":4149},{"style":1201},[4150],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4152,"children":4153},{"class":1036,"line":284},[4154,4158,4162,4167],{"type":993,"tag":1034,"props":4155,"children":4156},{"style":1195},[4157],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4159,"children":4160},{"style":1201},[4161],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4163,"children":4164},{"style":1207},[4165],{"type":998,"value":4166},"\"• Generate: pip freeze > requirements.txt\"",{"type":993,"tag":1034,"props":4168,"children":4169},{"style":1201},[4170],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4172,"children":4173},{"class":1036,"line":293},[4174,4178,4182,4187],{"type":993,"tag":1034,"props":4175,"children":4176},{"style":1195},[4177],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4179,"children":4180},{"style":1201},[4181],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4183,"children":4184},{"style":1207},[4185],{"type":998,"value":4186},"\"• Update: pip install --upgrade -r requirements.txt\"",{"type":993,"tag":1034,"props":4188,"children":4189},{"style":1201},[4190],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4192,"children":4193},{"class":1036,"line":302},[4194],{"type":993,"tag":1034,"props":4195,"children":4196},{"emptyLinePlaceholder":13},[4197],{"type":998,"value":1051},{"type":993,"tag":1034,"props":4199,"children":4200},{"class":1036,"line":311},[4201],{"type":993,"tag":1034,"props":4202,"children":4203},{"style":1201},[4204],{"type":998,"value":4205},"create_requirements_example()\n",{"type":993,"tag":1257,"props":4207,"children":4209},{"id":4208},"professional-package-management",[4210],{"type":998,"value":4211},"🚀 Professional Package Management",{"type":993,"tag":1543,"props":4213,"children":4215},{"id":4214},"project-structure-and-best-practices",[4216],{"type":998,"value":4217},"Project Structure and Best Practices",{"type":993,"tag":1001,"props":4219,"children":4220},{},[4221],{"type":998,"value":4222},"Proper project organization and dependency management ensure maintainable, professional Python projects.",{"type":993,"tag":1021,"props":4224,"children":4225},{},[4226],{"type":993,"tag":1025,"props":4227,"children":4229},{"className":1027,"code":4228,"language":6,"meta":8,"style":8},"def show_project_structure():\n    \"\"\"Demonstrate professional Python project structure\"\"\"\n    \n    structure = \"\"\"\nmy_project/\n├── README.md\n├── requirements.txt\n├── requirements-dev.txt\n├── setup.py\n├── .gitignore\n├── .env.example\n├── venv/                 # Virtual environment (don't commit)\n├── src/\n│   └── my_project/\n│       ├── __init__.py\n│       ├── main.py\n│       └── utils.py\n├── tests/\n│   ├── __init__.py\n│   ├── test_main.py\n│   └── test_utils.py\n├── docs/\n│   └── api.md\n└── scripts/\n    ├── setup.sh\n    └── deploy.sh\n\"\"\"\n    \n    print(\"Professional Project Structure:\")\n    print(structure)\n    \n    print(\"Key Files Explained:\")\n    print(\"• requirements.txt: Production dependencies\")\n    print(\"• requirements-dev.txt: Development dependencies\")\n    print(\"• setup.py: Package installation and metadata\")\n    print(\"• .gitignore: Files to exclude from version control\")\n    print(\"• .env.example: Environment variable template\")\n\nshow_project_structure()\n",[4230],{"type":993,"tag":1007,"props":4231,"children":4232},{"__ignoreMap":8},[4233,4249,4257,4264,4280,4288,4296,4304,4312,4320,4328,4336,4344,4352,4360,4368,4376,4384,4392,4400,4408,4416,4424,4432,4440,4448,4456,4464,4471,4491,4503,4510,4530,4550,4570,4590,4610,4630,4637],{"type":993,"tag":1034,"props":4234,"children":4235},{"class":1036,"line":12},[4236,4240,4245],{"type":993,"tag":1034,"props":4237,"children":4238},{"style":1577},[4239],{"type":998,"value":1580},{"type":993,"tag":1034,"props":4241,"children":4242},{"style":1583},[4243],{"type":998,"value":4244}," show_project_structure",{"type":993,"tag":1034,"props":4246,"children":4247},{"style":1201},[4248],{"type":998,"value":2521},{"type":993,"tag":1034,"props":4250,"children":4251},{"class":1036,"line":27},[4252],{"type":993,"tag":1034,"props":4253,"children":4254},{"style":1207},[4255],{"type":998,"value":4256},"    \"\"\"Demonstrate professional Python project structure\"\"\"\n",{"type":993,"tag":1034,"props":4258,"children":4259},{"class":1036,"line":36},[4260],{"type":993,"tag":1034,"props":4261,"children":4262},{"style":1201},[4263],{"type":998,"value":1622},{"type":993,"tag":1034,"props":4265,"children":4266},{"class":1036,"line":45},[4267,4272,4276],{"type":993,"tag":1034,"props":4268,"children":4269},{"style":1201},[4270],{"type":998,"value":4271},"    structure ",{"type":993,"tag":1034,"props":4273,"children":4274},{"style":1577},[4275],{"type":998,"value":1596},{"type":993,"tag":1034,"props":4277,"children":4278},{"style":1207},[4279],{"type":998,"value":3902},{"type":993,"tag":1034,"props":4281,"children":4282},{"class":1036,"line":54},[4283],{"type":993,"tag":1034,"props":4284,"children":4285},{"style":1207},[4286],{"type":998,"value":4287},"my_project/\n",{"type":993,"tag":1034,"props":4289,"children":4290},{"class":1036,"line":63},[4291],{"type":993,"tag":1034,"props":4292,"children":4293},{"style":1207},[4294],{"type":998,"value":4295},"├── README.md\n",{"type":993,"tag":1034,"props":4297,"children":4298},{"class":1036,"line":72},[4299],{"type":993,"tag":1034,"props":4300,"children":4301},{"style":1207},[4302],{"type":998,"value":4303},"├── requirements.txt\n",{"type":993,"tag":1034,"props":4305,"children":4306},{"class":1036,"line":81},[4307],{"type":993,"tag":1034,"props":4308,"children":4309},{"style":1207},[4310],{"type":998,"value":4311},"├── requirements-dev.txt\n",{"type":993,"tag":1034,"props":4313,"children":4314},{"class":1036,"line":91},[4315],{"type":993,"tag":1034,"props":4316,"children":4317},{"style":1207},[4318],{"type":998,"value":4319},"├── setup.py\n",{"type":993,"tag":1034,"props":4321,"children":4322},{"class":1036,"line":100},[4323],{"type":993,"tag":1034,"props":4324,"children":4325},{"style":1207},[4326],{"type":998,"value":4327},"├── .gitignore\n",{"type":993,"tag":1034,"props":4329,"children":4330},{"class":1036,"line":109},[4331],{"type":993,"tag":1034,"props":4332,"children":4333},{"style":1207},[4334],{"type":998,"value":4335},"├── .env.example\n",{"type":993,"tag":1034,"props":4337,"children":4338},{"class":1036,"line":118},[4339],{"type":993,"tag":1034,"props":4340,"children":4341},{"style":1207},[4342],{"type":998,"value":4343},"├── venv/                 # Virtual environment (don't commit)\n",{"type":993,"tag":1034,"props":4345,"children":4346},{"class":1036,"line":127},[4347],{"type":993,"tag":1034,"props":4348,"children":4349},{"style":1207},[4350],{"type":998,"value":4351},"├── src/\n",{"type":993,"tag":1034,"props":4353,"children":4354},{"class":1036,"line":136},[4355],{"type":993,"tag":1034,"props":4356,"children":4357},{"style":1207},[4358],{"type":998,"value":4359},"│   └── my_project/\n",{"type":993,"tag":1034,"props":4361,"children":4362},{"class":1036,"line":146},[4363],{"type":993,"tag":1034,"props":4364,"children":4365},{"style":1207},[4366],{"type":998,"value":4367},"│       ├── __init__.py\n",{"type":993,"tag":1034,"props":4369,"children":4370},{"class":1036,"line":155},[4371],{"type":993,"tag":1034,"props":4372,"children":4373},{"style":1207},[4374],{"type":998,"value":4375},"│       ├── main.py\n",{"type":993,"tag":1034,"props":4377,"children":4378},{"class":1036,"line":164},[4379],{"type":993,"tag":1034,"props":4380,"children":4381},{"style":1207},[4382],{"type":998,"value":4383},"│       └── utils.py\n",{"type":993,"tag":1034,"props":4385,"children":4386},{"class":1036,"line":173},[4387],{"type":993,"tag":1034,"props":4388,"children":4389},{"style":1207},[4390],{"type":998,"value":4391},"├── tests/\n",{"type":993,"tag":1034,"props":4393,"children":4394},{"class":1036,"line":182},[4395],{"type":993,"tag":1034,"props":4396,"children":4397},{"style":1207},[4398],{"type":998,"value":4399},"│   ├── __init__.py\n",{"type":993,"tag":1034,"props":4401,"children":4402},{"class":1036,"line":191},[4403],{"type":993,"tag":1034,"props":4404,"children":4405},{"style":1207},[4406],{"type":998,"value":4407},"│   ├── test_main.py\n",{"type":993,"tag":1034,"props":4409,"children":4410},{"class":1036,"line":201},[4411],{"type":993,"tag":1034,"props":4412,"children":4413},{"style":1207},[4414],{"type":998,"value":4415},"│   └── test_utils.py\n",{"type":993,"tag":1034,"props":4417,"children":4418},{"class":1036,"line":210},[4419],{"type":993,"tag":1034,"props":4420,"children":4421},{"style":1207},[4422],{"type":998,"value":4423},"├── docs/\n",{"type":993,"tag":1034,"props":4425,"children":4426},{"class":1036,"line":219},[4427],{"type":993,"tag":1034,"props":4428,"children":4429},{"style":1207},[4430],{"type":998,"value":4431},"│   └── api.md\n",{"type":993,"tag":1034,"props":4433,"children":4434},{"class":1036,"line":228},[4435],{"type":993,"tag":1034,"props":4436,"children":4437},{"style":1207},[4438],{"type":998,"value":4439},"└── scripts/\n",{"type":993,"tag":1034,"props":4441,"children":4442},{"class":1036,"line":238},[4443],{"type":993,"tag":1034,"props":4444,"children":4445},{"style":1207},[4446],{"type":998,"value":4447},"    ├── setup.sh\n",{"type":993,"tag":1034,"props":4449,"children":4450},{"class":1036,"line":247},[4451],{"type":993,"tag":1034,"props":4452,"children":4453},{"style":1207},[4454],{"type":998,"value":4455},"    └── deploy.sh\n",{"type":993,"tag":1034,"props":4457,"children":4458},{"class":1036,"line":256},[4459],{"type":993,"tag":1034,"props":4460,"children":4461},{"style":1207},[4462],{"type":998,"value":4463},"\"\"\"\n",{"type":993,"tag":1034,"props":4465,"children":4466},{"class":1036,"line":265},[4467],{"type":993,"tag":1034,"props":4468,"children":4469},{"style":1201},[4470],{"type":998,"value":1622},{"type":993,"tag":1034,"props":4472,"children":4473},{"class":1036,"line":274},[4474,4478,4482,4487],{"type":993,"tag":1034,"props":4475,"children":4476},{"style":1195},[4477],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4479,"children":4480},{"style":1201},[4481],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4483,"children":4484},{"style":1207},[4485],{"type":998,"value":4486},"\"Professional Project Structure:\"",{"type":993,"tag":1034,"props":4488,"children":4489},{"style":1201},[4490],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4492,"children":4493},{"class":1036,"line":284},[4494,4498],{"type":993,"tag":1034,"props":4495,"children":4496},{"style":1195},[4497],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4499,"children":4500},{"style":1201},[4501],{"type":998,"value":4502},"(structure)\n",{"type":993,"tag":1034,"props":4504,"children":4505},{"class":1036,"line":293},[4506],{"type":993,"tag":1034,"props":4507,"children":4508},{"style":1201},[4509],{"type":998,"value":1622},{"type":993,"tag":1034,"props":4511,"children":4512},{"class":1036,"line":302},[4513,4517,4521,4526],{"type":993,"tag":1034,"props":4514,"children":4515},{"style":1195},[4516],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4518,"children":4519},{"style":1201},[4520],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4522,"children":4523},{"style":1207},[4524],{"type":998,"value":4525},"\"Key Files Explained:\"",{"type":993,"tag":1034,"props":4527,"children":4528},{"style":1201},[4529],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4531,"children":4532},{"class":1036,"line":311},[4533,4537,4541,4546],{"type":993,"tag":1034,"props":4534,"children":4535},{"style":1195},[4536],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4538,"children":4539},{"style":1201},[4540],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4542,"children":4543},{"style":1207},[4544],{"type":998,"value":4545},"\"• requirements.txt: Production dependencies\"",{"type":993,"tag":1034,"props":4547,"children":4548},{"style":1201},[4549],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4551,"children":4552},{"class":1036,"line":320},[4553,4557,4561,4566],{"type":993,"tag":1034,"props":4554,"children":4555},{"style":1195},[4556],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4558,"children":4559},{"style":1201},[4560],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4562,"children":4563},{"style":1207},[4564],{"type":998,"value":4565},"\"• requirements-dev.txt: Development dependencies\"",{"type":993,"tag":1034,"props":4567,"children":4568},{"style":1201},[4569],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4571,"children":4572},{"class":1036,"line":329},[4573,4577,4581,4586],{"type":993,"tag":1034,"props":4574,"children":4575},{"style":1195},[4576],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4578,"children":4579},{"style":1201},[4580],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4582,"children":4583},{"style":1207},[4584],{"type":998,"value":4585},"\"• setup.py: Package installation and metadata\"",{"type":993,"tag":1034,"props":4587,"children":4588},{"style":1201},[4589],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4591,"children":4592},{"class":1036,"line":338},[4593,4597,4601,4606],{"type":993,"tag":1034,"props":4594,"children":4595},{"style":1195},[4596],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4598,"children":4599},{"style":1201},[4600],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4602,"children":4603},{"style":1207},[4604],{"type":998,"value":4605},"\"• .gitignore: Files to exclude from version control\"",{"type":993,"tag":1034,"props":4607,"children":4608},{"style":1201},[4609],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4611,"children":4612},{"class":1036,"line":347},[4613,4617,4621,4626],{"type":993,"tag":1034,"props":4614,"children":4615},{"style":1195},[4616],{"type":998,"value":2478},{"type":993,"tag":1034,"props":4618,"children":4619},{"style":1201},[4620],{"type":998,"value":1204},{"type":993,"tag":1034,"props":4622,"children":4623},{"style":1207},[4624],{"type":998,"value":4625},"\"• .env.example: Environment variable template\"",{"type":993,"tag":1034,"props":4627,"children":4628},{"style":1201},[4629],{"type":998,"value":1215},{"type":993,"tag":1034,"props":4631,"children":4632},{"class":1036,"line":356},[4633],{"type":993,"tag":1034,"props":4634,"children":4635},{"emptyLinePlaceholder":13},[4636],{"type":998,"value":1051},{"type":993,"tag":1034,"props":4638,"children":4639},{"class":1036,"line":365},[4640],{"type":993,"tag":1034,"props":4641,"children":4642},{"style":1201},[4643],{"type":998,"value":4644},"show_project_structure()\n",{"type":993,"tag":1543,"props":4646,"children":4648},{"id":4647},"dependency-management-strategies",[4649],{"type":998,"value":4650},"Dependency Management Strategies",{"type":993,"tag":1001,"props":4652,"children":4653},{},[4654],{"type":998,"value":4655},"Effective dependency management prevents conflicts and ensures reproducible builds across different environments.",{"type":993,"tag":1021,"props":4657,"children":4658},{},[4659],{"type":993,"tag":1025,"props":4660,"children":4662},{"className":1027,"code":4661,"language":6,"meta":8,"style":8},"def dependency_management_guide():\n    \"\"\"Guide for managing dependencies effectively\"\"\"\n    \n    strategies = {\n        \"Pin Exact Versions\": {\n            \"When\": \"Production deployments\",\n            \"Example\": \"django==4.2.7\",\n            \"Benefit\": \"Predictable, reproducible builds\"\n        },\n        \"Use Version Ranges\": {\n            \"When\": \"Library development\",\n            \"Example\": \"requests>=2.25.0,\u003C3.0.0\",\n            \"Benefit\": \"Flexibility for updates\"\n        },\n        \"Separate Requirements\": {\n            \"When\": \"Different environments\",\n            \"Example\": \"requirements.txt + requirements-dev.txt\",\n            \"Benefit\": \"Lightweight production installs\"\n        },\n        \"Lock Files\": {\n            \"When\": \"Team collaboration\",\n            \"Example\": \"pip-tools: pip-compile requirements.in\",\n            \"Benefit\": \"Exact dependency versions\"\n        },\n        \"Security Updates\": {\n            \"When\": \"Regular maintenance\",\n            \"Example\": \"pip audit, safety check\",\n            \"Benefit\": \"Identify vulnerable packages\"\n        }\n    }\n    \n    print(\"Dependency Management Strategies:\")\n    print(\"=\" * 40)\n    \n    for strategy, details in strategies.items():\n        print(f\"\\n{strategy}:\")\n        print(f\"  When to use: {details['When']}\")\n        print(f\"  Example: {details['Example']}\")\n        print(f\"  Benefit: {details['Benefit']}\")\n    \n    print(\"\\nCommon Workflow:\")\n    print(\"1. Create virtual environment\")\n    print(\"2. Install packages and test\")\n    print(\"3. Generate requirements.txt\")\n    print(\"4. Test installation in fresh environment\")\n    print(\"5. Commit requirements.txt to version control\")\n\ndependency_management_guide()\n",[4663],{"type":993,"tag":1007,"props":4664,"children":4665},{"__ignoreMap":8},[4666,4682,4690,4697,4713,4725,4746,4767,4784,4791,4803,4823,4843,4859,4866,4878,4898,4918,4934,4941,4953,4973,4993,5009,5016,5028,5048,5068,5084,5091,5098,5105,5125,5154,5161,5182,5223,5272,5321,5370,5377,5405,5425,5445,5465,5485,5505,5512],{"type":993,"tag":1034,"props":4667,"children":4668},{"class":1036,"line":12},[4669,4673,4678],{"type":993,"tag":1034,"props":4670,"children":4671},{"style":1577},[4672],{"type":998,"value":1580},{"type":993,"tag":1034,"props":4674,"children":4675},{"style":1583},[4676],{"type":998,"value":4677}," dependency_management_guide",{"type":993,"tag":1034,"props":4679,"children":4680},{"style":1201},[4681],{"type":998,"value":2521},{"type":993,"tag":1034,"props":4683,"children":4684},{"class":1036,"line":27},[4685],{"type":993,"tag":1034,"props":4686,"children":4687},{"style":1207},[4688],{"type":998,"value":4689},"    \"\"\"Guide for managing dependencies effectively\"\"\"\n",{"type":993,"tag":1034,"props":4691,"children":4692},{"class":1036,"line":36},[4693],{"type":993,"tag":1034,"props":4694,"children":4695},{"style":1201},[4696],{"type":998,"value":1622},{"type":993,"tag":1034,"props":4698,"children":4699},{"class":1036,"line":45},[4700,4705,4709],{"type":993,"tag":1034,"props":4701,"children":4702},{"style":1201},[4703],{"type":998,"value":4704},"    strategies ",{"type":993,"tag":1034,"props":4706,"children":4707},{"style":1577},[4708],{"type":998,"value":1596},{"type":993,"tag":1034,"props":4710,"children":4711},{"style":1201},[4712],{"type":998,"value":1639},{"type":993,"tag":1034,"props":4714,"children":4715},{"class":1036,"line":54},[4716,4721],{"type":993,"tag":1034,"props":4717,"children":4718},{"style":1207},[4719],{"type":998,"value":4720},"        \"Pin Exact Versions\"",{"type":993,"tag":1034,"props":4722,"children":4723},{"style":1201},[4724],{"type":998,"value":1652},{"type":993,"tag":1034,"props":4726,"children":4727},{"class":1036,"line":63},[4728,4733,4737,4742],{"type":993,"tag":1034,"props":4729,"children":4730},{"style":1207},[4731],{"type":998,"value":4732},"            \"When\"",{"type":993,"tag":1034,"props":4734,"children":4735},{"style":1201},[4736],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4738,"children":4739},{"style":1207},[4740],{"type":998,"value":4741},"\"Production deployments\"",{"type":993,"tag":1034,"props":4743,"children":4744},{"style":1201},[4745],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4747,"children":4748},{"class":1036,"line":72},[4749,4754,4758,4763],{"type":993,"tag":1034,"props":4750,"children":4751},{"style":1207},[4752],{"type":998,"value":4753},"            \"Example\"",{"type":993,"tag":1034,"props":4755,"children":4756},{"style":1201},[4757],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4759,"children":4760},{"style":1207},[4761],{"type":998,"value":4762},"\"django==4.2.7\"",{"type":993,"tag":1034,"props":4764,"children":4765},{"style":1201},[4766],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4768,"children":4769},{"class":1036,"line":81},[4770,4775,4779],{"type":993,"tag":1034,"props":4771,"children":4772},{"style":1207},[4773],{"type":998,"value":4774},"            \"Benefit\"",{"type":993,"tag":1034,"props":4776,"children":4777},{"style":1201},[4778],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4780,"children":4781},{"style":1207},[4782],{"type":998,"value":4783},"\"Predictable, reproducible builds\"\n",{"type":993,"tag":1034,"props":4785,"children":4786},{"class":1036,"line":91},[4787],{"type":993,"tag":1034,"props":4788,"children":4789},{"style":1201},[4790],{"type":998,"value":1751},{"type":993,"tag":1034,"props":4792,"children":4793},{"class":1036,"line":100},[4794,4799],{"type":993,"tag":1034,"props":4795,"children":4796},{"style":1207},[4797],{"type":998,"value":4798},"        \"Use Version Ranges\"",{"type":993,"tag":1034,"props":4800,"children":4801},{"style":1201},[4802],{"type":998,"value":1652},{"type":993,"tag":1034,"props":4804,"children":4805},{"class":1036,"line":109},[4806,4810,4814,4819],{"type":993,"tag":1034,"props":4807,"children":4808},{"style":1207},[4809],{"type":998,"value":4732},{"type":993,"tag":1034,"props":4811,"children":4812},{"style":1201},[4813],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4815,"children":4816},{"style":1207},[4817],{"type":998,"value":4818},"\"Library development\"",{"type":993,"tag":1034,"props":4820,"children":4821},{"style":1201},[4822],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4824,"children":4825},{"class":1036,"line":118},[4826,4830,4834,4839],{"type":993,"tag":1034,"props":4827,"children":4828},{"style":1207},[4829],{"type":998,"value":4753},{"type":993,"tag":1034,"props":4831,"children":4832},{"style":1201},[4833],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4835,"children":4836},{"style":1207},[4837],{"type":998,"value":4838},"\"requests>=2.25.0,\u003C3.0.0\"",{"type":993,"tag":1034,"props":4840,"children":4841},{"style":1201},[4842],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4844,"children":4845},{"class":1036,"line":127},[4846,4850,4854],{"type":993,"tag":1034,"props":4847,"children":4848},{"style":1207},[4849],{"type":998,"value":4774},{"type":993,"tag":1034,"props":4851,"children":4852},{"style":1201},[4853],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4855,"children":4856},{"style":1207},[4857],{"type":998,"value":4858},"\"Flexibility for updates\"\n",{"type":993,"tag":1034,"props":4860,"children":4861},{"class":1036,"line":136},[4862],{"type":993,"tag":1034,"props":4863,"children":4864},{"style":1201},[4865],{"type":998,"value":1751},{"type":993,"tag":1034,"props":4867,"children":4868},{"class":1036,"line":146},[4869,4874],{"type":993,"tag":1034,"props":4870,"children":4871},{"style":1207},[4872],{"type":998,"value":4873},"        \"Separate Requirements\"",{"type":993,"tag":1034,"props":4875,"children":4876},{"style":1201},[4877],{"type":998,"value":1652},{"type":993,"tag":1034,"props":4879,"children":4880},{"class":1036,"line":155},[4881,4885,4889,4894],{"type":993,"tag":1034,"props":4882,"children":4883},{"style":1207},[4884],{"type":998,"value":4732},{"type":993,"tag":1034,"props":4886,"children":4887},{"style":1201},[4888],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4890,"children":4891},{"style":1207},[4892],{"type":998,"value":4893},"\"Different environments\"",{"type":993,"tag":1034,"props":4895,"children":4896},{"style":1201},[4897],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4899,"children":4900},{"class":1036,"line":164},[4901,4905,4909,4914],{"type":993,"tag":1034,"props":4902,"children":4903},{"style":1207},[4904],{"type":998,"value":4753},{"type":993,"tag":1034,"props":4906,"children":4907},{"style":1201},[4908],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4910,"children":4911},{"style":1207},[4912],{"type":998,"value":4913},"\"requirements.txt + requirements-dev.txt\"",{"type":993,"tag":1034,"props":4915,"children":4916},{"style":1201},[4917],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4919,"children":4920},{"class":1036,"line":173},[4921,4925,4929],{"type":993,"tag":1034,"props":4922,"children":4923},{"style":1207},[4924],{"type":998,"value":4774},{"type":993,"tag":1034,"props":4926,"children":4927},{"style":1201},[4928],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4930,"children":4931},{"style":1207},[4932],{"type":998,"value":4933},"\"Lightweight production installs\"\n",{"type":993,"tag":1034,"props":4935,"children":4936},{"class":1036,"line":182},[4937],{"type":993,"tag":1034,"props":4938,"children":4939},{"style":1201},[4940],{"type":998,"value":1751},{"type":993,"tag":1034,"props":4942,"children":4943},{"class":1036,"line":191},[4944,4949],{"type":993,"tag":1034,"props":4945,"children":4946},{"style":1207},[4947],{"type":998,"value":4948},"        \"Lock Files\"",{"type":993,"tag":1034,"props":4950,"children":4951},{"style":1201},[4952],{"type":998,"value":1652},{"type":993,"tag":1034,"props":4954,"children":4955},{"class":1036,"line":201},[4956,4960,4964,4969],{"type":993,"tag":1034,"props":4957,"children":4958},{"style":1207},[4959],{"type":998,"value":4732},{"type":993,"tag":1034,"props":4961,"children":4962},{"style":1201},[4963],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4965,"children":4966},{"style":1207},[4967],{"type":998,"value":4968},"\"Team collaboration\"",{"type":993,"tag":1034,"props":4970,"children":4971},{"style":1201},[4972],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4974,"children":4975},{"class":1036,"line":210},[4976,4980,4984,4989],{"type":993,"tag":1034,"props":4977,"children":4978},{"style":1207},[4979],{"type":998,"value":4753},{"type":993,"tag":1034,"props":4981,"children":4982},{"style":1201},[4983],{"type":998,"value":1665},{"type":993,"tag":1034,"props":4985,"children":4986},{"style":1207},[4987],{"type":998,"value":4988},"\"pip-tools: pip-compile requirements.in\"",{"type":993,"tag":1034,"props":4990,"children":4991},{"style":1201},[4992],{"type":998,"value":1675},{"type":993,"tag":1034,"props":4994,"children":4995},{"class":1036,"line":219},[4996,5000,5004],{"type":993,"tag":1034,"props":4997,"children":4998},{"style":1207},[4999],{"type":998,"value":4774},{"type":993,"tag":1034,"props":5001,"children":5002},{"style":1201},[5003],{"type":998,"value":1665},{"type":993,"tag":1034,"props":5005,"children":5006},{"style":1207},[5007],{"type":998,"value":5008},"\"Exact dependency versions\"\n",{"type":993,"tag":1034,"props":5010,"children":5011},{"class":1036,"line":228},[5012],{"type":993,"tag":1034,"props":5013,"children":5014},{"style":1201},[5015],{"type":998,"value":1751},{"type":993,"tag":1034,"props":5017,"children":5018},{"class":1036,"line":238},[5019,5024],{"type":993,"tag":1034,"props":5020,"children":5021},{"style":1207},[5022],{"type":998,"value":5023},"        \"Security Updates\"",{"type":993,"tag":1034,"props":5025,"children":5026},{"style":1201},[5027],{"type":998,"value":1652},{"type":993,"tag":1034,"props":5029,"children":5030},{"class":1036,"line":247},[5031,5035,5039,5044],{"type":993,"tag":1034,"props":5032,"children":5033},{"style":1207},[5034],{"type":998,"value":4732},{"type":993,"tag":1034,"props":5036,"children":5037},{"style":1201},[5038],{"type":998,"value":1665},{"type":993,"tag":1034,"props":5040,"children":5041},{"style":1207},[5042],{"type":998,"value":5043},"\"Regular maintenance\"",{"type":993,"tag":1034,"props":5045,"children":5046},{"style":1201},[5047],{"type":998,"value":1675},{"type":993,"tag":1034,"props":5049,"children":5050},{"class":1036,"line":256},[5051,5055,5059,5064],{"type":993,"tag":1034,"props":5052,"children":5053},{"style":1207},[5054],{"type":998,"value":4753},{"type":993,"tag":1034,"props":5056,"children":5057},{"style":1201},[5058],{"type":998,"value":1665},{"type":993,"tag":1034,"props":5060,"children":5061},{"style":1207},[5062],{"type":998,"value":5063},"\"pip audit, safety check\"",{"type":993,"tag":1034,"props":5065,"children":5066},{"style":1201},[5067],{"type":998,"value":1675},{"type":993,"tag":1034,"props":5069,"children":5070},{"class":1036,"line":265},[5071,5075,5079],{"type":993,"tag":1034,"props":5072,"children":5073},{"style":1207},[5074],{"type":998,"value":4774},{"type":993,"tag":1034,"props":5076,"children":5077},{"style":1201},[5078],{"type":998,"value":1665},{"type":993,"tag":1034,"props":5080,"children":5081},{"style":1207},[5082],{"type":998,"value":5083},"\"Identify vulnerable packages\"\n",{"type":993,"tag":1034,"props":5085,"children":5086},{"class":1036,"line":274},[5087],{"type":993,"tag":1034,"props":5088,"children":5089},{"style":1201},[5090],{"type":998,"value":1948},{"type":993,"tag":1034,"props":5092,"children":5093},{"class":1036,"line":284},[5094],{"type":993,"tag":1034,"props":5095,"children":5096},{"style":1201},[5097],{"type":998,"value":1956},{"type":993,"tag":1034,"props":5099,"children":5100},{"class":1036,"line":293},[5101],{"type":993,"tag":1034,"props":5102,"children":5103},{"style":1201},[5104],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5106,"children":5107},{"class":1036,"line":302},[5108,5112,5116,5121],{"type":993,"tag":1034,"props":5109,"children":5110},{"style":1195},[5111],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5113,"children":5114},{"style":1201},[5115],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5117,"children":5118},{"style":1207},[5119],{"type":998,"value":5120},"\"Dependency Management Strategies:\"",{"type":993,"tag":1034,"props":5122,"children":5123},{"style":1201},[5124],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5126,"children":5127},{"class":1036,"line":311},[5128,5132,5136,5141,5145,5150],{"type":993,"tag":1034,"props":5129,"children":5130},{"style":1195},[5131],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5133,"children":5134},{"style":1201},[5135],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5137,"children":5138},{"style":1207},[5139],{"type":998,"value":5140},"\"=\"",{"type":993,"tag":1034,"props":5142,"children":5143},{"style":1577},[5144],{"type":998,"value":2750},{"type":993,"tag":1034,"props":5146,"children":5147},{"style":1195},[5148],{"type":998,"value":5149}," 40",{"type":993,"tag":1034,"props":5151,"children":5152},{"style":1201},[5153],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5155,"children":5156},{"class":1036,"line":320},[5157],{"type":993,"tag":1034,"props":5158,"children":5159},{"style":1201},[5160],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5162,"children":5163},{"class":1036,"line":329},[5164,5168,5173,5177],{"type":993,"tag":1034,"props":5165,"children":5166},{"style":1577},[5167],{"type":998,"value":2774},{"type":993,"tag":1034,"props":5169,"children":5170},{"style":1201},[5171],{"type":998,"value":5172}," strategy, details ",{"type":993,"tag":1034,"props":5174,"children":5175},{"style":1577},[5176],{"type":998,"value":1981},{"type":993,"tag":1034,"props":5178,"children":5179},{"style":1201},[5180],{"type":998,"value":5181}," strategies.items():\n",{"type":993,"tag":1034,"props":5183,"children":5184},{"class":1036,"line":338},[5185,5189,5193,5197,5201,5206,5211,5215,5219],{"type":993,"tag":1034,"props":5186,"children":5187},{"style":1195},[5188],{"type":998,"value":2011},{"type":993,"tag":1034,"props":5190,"children":5191},{"style":1201},[5192],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5194,"children":5195},{"style":1577},[5196],{"type":998,"value":2020},{"type":993,"tag":1034,"props":5198,"children":5199},{"style":1207},[5200],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5202,"children":5203},{"style":1195},[5204],{"type":998,"value":5205},"\\n{",{"type":993,"tag":1034,"props":5207,"children":5208},{"style":1201},[5209],{"type":998,"value":5210},"strategy",{"type":993,"tag":1034,"props":5212,"children":5213},{"style":1195},[5214],{"type":998,"value":2040},{"type":993,"tag":1034,"props":5216,"children":5217},{"style":1207},[5218],{"type":998,"value":3570},{"type":993,"tag":1034,"props":5220,"children":5221},{"style":1201},[5222],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5224,"children":5225},{"class":1036,"line":347},[5226,5230,5234,5238,5243,5247,5251,5256,5260,5264,5268],{"type":993,"tag":1034,"props":5227,"children":5228},{"style":1195},[5229],{"type":998,"value":2011},{"type":993,"tag":1034,"props":5231,"children":5232},{"style":1201},[5233],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5235,"children":5236},{"style":1577},[5237],{"type":998,"value":2020},{"type":993,"tag":1034,"props":5239,"children":5240},{"style":1207},[5241],{"type":998,"value":5242},"\"  When to use: ",{"type":993,"tag":1034,"props":5244,"children":5245},{"style":1195},[5246],{"type":998,"value":2030},{"type":993,"tag":1034,"props":5248,"children":5249},{"style":1201},[5250],{"type":998,"value":3627},{"type":993,"tag":1034,"props":5252,"children":5253},{"style":1207},[5254],{"type":998,"value":5255},"'When'",{"type":993,"tag":1034,"props":5257,"children":5258},{"style":1201},[5259],{"type":998,"value":2088},{"type":993,"tag":1034,"props":5261,"children":5262},{"style":1195},[5263],{"type":998,"value":2040},{"type":993,"tag":1034,"props":5265,"children":5266},{"style":1207},[5267],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5269,"children":5270},{"style":1201},[5271],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5273,"children":5274},{"class":1036,"line":356},[5275,5279,5283,5287,5292,5296,5300,5305,5309,5313,5317],{"type":993,"tag":1034,"props":5276,"children":5277},{"style":1195},[5278],{"type":998,"value":2011},{"type":993,"tag":1034,"props":5280,"children":5281},{"style":1201},[5282],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5284,"children":5285},{"style":1577},[5286],{"type":998,"value":2020},{"type":993,"tag":1034,"props":5288,"children":5289},{"style":1207},[5290],{"type":998,"value":5291},"\"  Example: ",{"type":993,"tag":1034,"props":5293,"children":5294},{"style":1195},[5295],{"type":998,"value":2030},{"type":993,"tag":1034,"props":5297,"children":5298},{"style":1201},[5299],{"type":998,"value":3627},{"type":993,"tag":1034,"props":5301,"children":5302},{"style":1207},[5303],{"type":998,"value":5304},"'Example'",{"type":993,"tag":1034,"props":5306,"children":5307},{"style":1201},[5308],{"type":998,"value":2088},{"type":993,"tag":1034,"props":5310,"children":5311},{"style":1195},[5312],{"type":998,"value":2040},{"type":993,"tag":1034,"props":5314,"children":5315},{"style":1207},[5316],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5318,"children":5319},{"style":1201},[5320],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5322,"children":5323},{"class":1036,"line":365},[5324,5328,5332,5336,5341,5345,5349,5354,5358,5362,5366],{"type":993,"tag":1034,"props":5325,"children":5326},{"style":1195},[5327],{"type":998,"value":2011},{"type":993,"tag":1034,"props":5329,"children":5330},{"style":1201},[5331],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5333,"children":5334},{"style":1577},[5335],{"type":998,"value":2020},{"type":993,"tag":1034,"props":5337,"children":5338},{"style":1207},[5339],{"type":998,"value":5340},"\"  Benefit: ",{"type":993,"tag":1034,"props":5342,"children":5343},{"style":1195},[5344],{"type":998,"value":2030},{"type":993,"tag":1034,"props":5346,"children":5347},{"style":1201},[5348],{"type":998,"value":3627},{"type":993,"tag":1034,"props":5350,"children":5351},{"style":1207},[5352],{"type":998,"value":5353},"'Benefit'",{"type":993,"tag":1034,"props":5355,"children":5356},{"style":1201},[5357],{"type":998,"value":2088},{"type":993,"tag":1034,"props":5359,"children":5360},{"style":1195},[5361],{"type":998,"value":2040},{"type":993,"tag":1034,"props":5363,"children":5364},{"style":1207},[5365],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5367,"children":5368},{"style":1201},[5369],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5371,"children":5372},{"class":1036,"line":374},[5373],{"type":993,"tag":1034,"props":5374,"children":5375},{"style":1201},[5376],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5378,"children":5379},{"class":1036,"line":384},[5380,5384,5388,5392,5396,5401],{"type":993,"tag":1034,"props":5381,"children":5382},{"style":1195},[5383],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5385,"children":5386},{"style":1201},[5387],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5389,"children":5390},{"style":1207},[5391],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5393,"children":5394},{"style":1195},[5395],{"type":998,"value":2878},{"type":993,"tag":1034,"props":5397,"children":5398},{"style":1207},[5399],{"type":998,"value":5400},"Common Workflow:\"",{"type":993,"tag":1034,"props":5402,"children":5403},{"style":1201},[5404],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5406,"children":5407},{"class":1036,"line":393},[5408,5412,5416,5421],{"type":993,"tag":1034,"props":5409,"children":5410},{"style":1195},[5411],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5413,"children":5414},{"style":1201},[5415],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5417,"children":5418},{"style":1207},[5419],{"type":998,"value":5420},"\"1. Create virtual environment\"",{"type":993,"tag":1034,"props":5422,"children":5423},{"style":1201},[5424],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5426,"children":5427},{"class":1036,"line":402},[5428,5432,5436,5441],{"type":993,"tag":1034,"props":5429,"children":5430},{"style":1195},[5431],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5433,"children":5434},{"style":1201},[5435],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5437,"children":5438},{"style":1207},[5439],{"type":998,"value":5440},"\"2. Install packages and test\"",{"type":993,"tag":1034,"props":5442,"children":5443},{"style":1201},[5444],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5446,"children":5447},{"class":1036,"line":411},[5448,5452,5456,5461],{"type":993,"tag":1034,"props":5449,"children":5450},{"style":1195},[5451],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5453,"children":5454},{"style":1201},[5455],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5457,"children":5458},{"style":1207},[5459],{"type":998,"value":5460},"\"3. Generate requirements.txt\"",{"type":993,"tag":1034,"props":5462,"children":5463},{"style":1201},[5464],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5466,"children":5467},{"class":1036,"line":420},[5468,5472,5476,5481],{"type":993,"tag":1034,"props":5469,"children":5470},{"style":1195},[5471],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5473,"children":5474},{"style":1201},[5475],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5477,"children":5478},{"style":1207},[5479],{"type":998,"value":5480},"\"4. Test installation in fresh environment\"",{"type":993,"tag":1034,"props":5482,"children":5483},{"style":1201},[5484],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5486,"children":5487},{"class":1036,"line":429},[5488,5492,5496,5501],{"type":993,"tag":1034,"props":5489,"children":5490},{"style":1195},[5491],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5493,"children":5494},{"style":1201},[5495],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5497,"children":5498},{"style":1207},[5499],{"type":998,"value":5500},"\"5. Commit requirements.txt to version control\"",{"type":993,"tag":1034,"props":5502,"children":5503},{"style":1201},[5504],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5506,"children":5507},{"class":1036,"line":438},[5508],{"type":993,"tag":1034,"props":5509,"children":5510},{"emptyLinePlaceholder":13},[5511],{"type":998,"value":1051},{"type":993,"tag":1034,"props":5513,"children":5514},{"class":1036,"line":447},[5515],{"type":993,"tag":1034,"props":5516,"children":5517},{"style":1201},[5518],{"type":998,"value":5519},"dependency_management_guide()\n",{"type":993,"tag":1257,"props":5521,"children":5523},{"id":5522},"package-development-basics",[5524],{"type":998,"value":5525},"🌟 Package Development Basics",{"type":993,"tag":1543,"props":5527,"children":5529},{"id":5528},"creating-your-own-packages",[5530],{"type":998,"value":5531},"Creating Your Own Packages",{"type":993,"tag":1001,"props":5533,"children":5534},{},[5535],{"type":998,"value":5536},"Understanding package creation helps you organize code and contribute to the Python ecosystem.",{"type":993,"tag":1021,"props":5538,"children":5539},{},[5540],{"type":993,"tag":1025,"props":5541,"children":5543},{"className":1027,"code":5542,"language":6,"meta":8,"style":8},"def package_creation_example():\n    \"\"\"Demonstrate basic package creation structure\"\"\"\n    \n    setup_py_content = '''\nfrom setuptools import setup, find_packages\n\nsetup(\n    name=\"my-awesome-package\",\n    version=\"0.1.0\",\n    author=\"Your Name\",\n    author_email=\"your.email@example.com\",\n    description=\"A useful Python package\",\n    long_description=open(\"README.md\").read(),\n    long_description_content_type=\"text/markdown\",\n    url=\"https://github.com/yourusername/my-awesome-package\",\n    packages=find_packages(),\n    classifiers=[\n        \"Development Status :: 3 - Alpha\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n    ],\n    python_requires=\">=3.8\",\n    install_requires=[\n        \"requests>=2.25.0\",\n        \"click>=8.0.0\",\n    ],\n    extras_require={\n        \"dev\": [\n            \"pytest>=7.0.0\",\n            \"black>=22.0.0\",\n            \"flake8>=4.0.0\",\n        ],\n    },\n    entry_points={\n        \"console_scripts\": [\n            \"my-tool=my_package.cli:main\",\n        ],\n    },\n)\n'''.strip()\n    \n    print(\"Example setup.py for package creation:\")\n    print(setup_py_content)\n    \n    print(\"\\nPackage Development Steps:\")\n    print(\"1. Create package structure with __init__.py\")\n    print(\"2. Write setup.py with metadata and dependencies\")\n    print(\"3. Add README.md with usage instructions\")\n    print(\"4. Test installation: pip install -e .\")\n    print(\"5. Build package: python setup.py sdist bdist_wheel\")\n    print(\"6. Upload to PyPI: twine upload dist/*\")\n\npackage_creation_example()\n",[5544],{"type":993,"tag":1007,"props":5545,"children":5546},{"__ignoreMap":8},[5547,5563,5571,5578,5595,5603,5610,5618,5626,5634,5642,5650,5658,5666,5674,5682,5690,5698,5706,5714,5722,5730,5738,5746,5754,5762,5770,5778,5786,5794,5801,5809,5817,5825,5833,5841,5849,5857,5865,5873,5881,5888,5895,5902,5914,5921,5941,5953,5960,5988,6008,6028,6048,6068,6088,6108,6115],{"type":993,"tag":1034,"props":5548,"children":5549},{"class":1036,"line":12},[5550,5554,5559],{"type":993,"tag":1034,"props":5551,"children":5552},{"style":1577},[5553],{"type":998,"value":1580},{"type":993,"tag":1034,"props":5555,"children":5556},{"style":1583},[5557],{"type":998,"value":5558}," package_creation_example",{"type":993,"tag":1034,"props":5560,"children":5561},{"style":1201},[5562],{"type":998,"value":2521},{"type":993,"tag":1034,"props":5564,"children":5565},{"class":1036,"line":27},[5566],{"type":993,"tag":1034,"props":5567,"children":5568},{"style":1207},[5569],{"type":998,"value":5570},"    \"\"\"Demonstrate basic package creation structure\"\"\"\n",{"type":993,"tag":1034,"props":5572,"children":5573},{"class":1036,"line":36},[5574],{"type":993,"tag":1034,"props":5575,"children":5576},{"style":1201},[5577],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5579,"children":5580},{"class":1036,"line":45},[5581,5586,5590],{"type":993,"tag":1034,"props":5582,"children":5583},{"style":1201},[5584],{"type":998,"value":5585},"    setup_py_content ",{"type":993,"tag":1034,"props":5587,"children":5588},{"style":1577},[5589],{"type":998,"value":1596},{"type":993,"tag":1034,"props":5591,"children":5592},{"style":1207},[5593],{"type":998,"value":5594}," '''\n",{"type":993,"tag":1034,"props":5596,"children":5597},{"class":1036,"line":54},[5598],{"type":993,"tag":1034,"props":5599,"children":5600},{"style":1207},[5601],{"type":998,"value":5602},"from setuptools import setup, find_packages\n",{"type":993,"tag":1034,"props":5604,"children":5605},{"class":1036,"line":63},[5606],{"type":993,"tag":1034,"props":5607,"children":5608},{"emptyLinePlaceholder":13},[5609],{"type":998,"value":1051},{"type":993,"tag":1034,"props":5611,"children":5612},{"class":1036,"line":72},[5613],{"type":993,"tag":1034,"props":5614,"children":5615},{"style":1207},[5616],{"type":998,"value":5617},"setup(\n",{"type":993,"tag":1034,"props":5619,"children":5620},{"class":1036,"line":81},[5621],{"type":993,"tag":1034,"props":5622,"children":5623},{"style":1207},[5624],{"type":998,"value":5625},"    name=\"my-awesome-package\",\n",{"type":993,"tag":1034,"props":5627,"children":5628},{"class":1036,"line":91},[5629],{"type":993,"tag":1034,"props":5630,"children":5631},{"style":1207},[5632],{"type":998,"value":5633},"    version=\"0.1.0\",\n",{"type":993,"tag":1034,"props":5635,"children":5636},{"class":1036,"line":100},[5637],{"type":993,"tag":1034,"props":5638,"children":5639},{"style":1207},[5640],{"type":998,"value":5641},"    author=\"Your Name\",\n",{"type":993,"tag":1034,"props":5643,"children":5644},{"class":1036,"line":109},[5645],{"type":993,"tag":1034,"props":5646,"children":5647},{"style":1207},[5648],{"type":998,"value":5649},"    author_email=\"your.email@example.com\",\n",{"type":993,"tag":1034,"props":5651,"children":5652},{"class":1036,"line":118},[5653],{"type":993,"tag":1034,"props":5654,"children":5655},{"style":1207},[5656],{"type":998,"value":5657},"    description=\"A useful Python package\",\n",{"type":993,"tag":1034,"props":5659,"children":5660},{"class":1036,"line":127},[5661],{"type":993,"tag":1034,"props":5662,"children":5663},{"style":1207},[5664],{"type":998,"value":5665},"    long_description=open(\"README.md\").read(),\n",{"type":993,"tag":1034,"props":5667,"children":5668},{"class":1036,"line":136},[5669],{"type":993,"tag":1034,"props":5670,"children":5671},{"style":1207},[5672],{"type":998,"value":5673},"    long_description_content_type=\"text/markdown\",\n",{"type":993,"tag":1034,"props":5675,"children":5676},{"class":1036,"line":146},[5677],{"type":993,"tag":1034,"props":5678,"children":5679},{"style":1207},[5680],{"type":998,"value":5681},"    url=\"https://github.com/yourusername/my-awesome-package\",\n",{"type":993,"tag":1034,"props":5683,"children":5684},{"class":1036,"line":155},[5685],{"type":993,"tag":1034,"props":5686,"children":5687},{"style":1207},[5688],{"type":998,"value":5689},"    packages=find_packages(),\n",{"type":993,"tag":1034,"props":5691,"children":5692},{"class":1036,"line":164},[5693],{"type":993,"tag":1034,"props":5694,"children":5695},{"style":1207},[5696],{"type":998,"value":5697},"    classifiers=[\n",{"type":993,"tag":1034,"props":5699,"children":5700},{"class":1036,"line":173},[5701],{"type":993,"tag":1034,"props":5702,"children":5703},{"style":1207},[5704],{"type":998,"value":5705},"        \"Development Status :: 3 - Alpha\",\n",{"type":993,"tag":1034,"props":5707,"children":5708},{"class":1036,"line":182},[5709],{"type":993,"tag":1034,"props":5710,"children":5711},{"style":1207},[5712],{"type":998,"value":5713},"        \"Intended Audience :: Developers\",\n",{"type":993,"tag":1034,"props":5715,"children":5716},{"class":1036,"line":191},[5717],{"type":993,"tag":1034,"props":5718,"children":5719},{"style":1207},[5720],{"type":998,"value":5721},"        \"License :: OSI Approved :: MIT License\",\n",{"type":993,"tag":1034,"props":5723,"children":5724},{"class":1036,"line":201},[5725],{"type":993,"tag":1034,"props":5726,"children":5727},{"style":1207},[5728],{"type":998,"value":5729},"        \"Programming Language :: Python :: 3\",\n",{"type":993,"tag":1034,"props":5731,"children":5732},{"class":1036,"line":210},[5733],{"type":993,"tag":1034,"props":5734,"children":5735},{"style":1207},[5736],{"type":998,"value":5737},"        \"Programming Language :: Python :: 3.8\",\n",{"type":993,"tag":1034,"props":5739,"children":5740},{"class":1036,"line":219},[5741],{"type":993,"tag":1034,"props":5742,"children":5743},{"style":1207},[5744],{"type":998,"value":5745},"        \"Programming Language :: Python :: 3.9\",\n",{"type":993,"tag":1034,"props":5747,"children":5748},{"class":1036,"line":228},[5749],{"type":993,"tag":1034,"props":5750,"children":5751},{"style":1207},[5752],{"type":998,"value":5753},"        \"Programming Language :: Python :: 3.10\",\n",{"type":993,"tag":1034,"props":5755,"children":5756},{"class":1036,"line":238},[5757],{"type":993,"tag":1034,"props":5758,"children":5759},{"style":1207},[5760],{"type":998,"value":5761},"    ],\n",{"type":993,"tag":1034,"props":5763,"children":5764},{"class":1036,"line":247},[5765],{"type":993,"tag":1034,"props":5766,"children":5767},{"style":1207},[5768],{"type":998,"value":5769},"    python_requires=\">=3.8\",\n",{"type":993,"tag":1034,"props":5771,"children":5772},{"class":1036,"line":256},[5773],{"type":993,"tag":1034,"props":5774,"children":5775},{"style":1207},[5776],{"type":998,"value":5777},"    install_requires=[\n",{"type":993,"tag":1034,"props":5779,"children":5780},{"class":1036,"line":265},[5781],{"type":993,"tag":1034,"props":5782,"children":5783},{"style":1207},[5784],{"type":998,"value":5785},"        \"requests>=2.25.0\",\n",{"type":993,"tag":1034,"props":5787,"children":5788},{"class":1036,"line":274},[5789],{"type":993,"tag":1034,"props":5790,"children":5791},{"style":1207},[5792],{"type":998,"value":5793},"        \"click>=8.0.0\",\n",{"type":993,"tag":1034,"props":5795,"children":5796},{"class":1036,"line":284},[5797],{"type":993,"tag":1034,"props":5798,"children":5799},{"style":1207},[5800],{"type":998,"value":5761},{"type":993,"tag":1034,"props":5802,"children":5803},{"class":1036,"line":293},[5804],{"type":993,"tag":1034,"props":5805,"children":5806},{"style":1207},[5807],{"type":998,"value":5808},"    extras_require={\n",{"type":993,"tag":1034,"props":5810,"children":5811},{"class":1036,"line":302},[5812],{"type":993,"tag":1034,"props":5813,"children":5814},{"style":1207},[5815],{"type":998,"value":5816},"        \"dev\": [\n",{"type":993,"tag":1034,"props":5818,"children":5819},{"class":1036,"line":311},[5820],{"type":993,"tag":1034,"props":5821,"children":5822},{"style":1207},[5823],{"type":998,"value":5824},"            \"pytest>=7.0.0\",\n",{"type":993,"tag":1034,"props":5826,"children":5827},{"class":1036,"line":320},[5828],{"type":993,"tag":1034,"props":5829,"children":5830},{"style":1207},[5831],{"type":998,"value":5832},"            \"black>=22.0.0\",\n",{"type":993,"tag":1034,"props":5834,"children":5835},{"class":1036,"line":329},[5836],{"type":993,"tag":1034,"props":5837,"children":5838},{"style":1207},[5839],{"type":998,"value":5840},"            \"flake8>=4.0.0\",\n",{"type":993,"tag":1034,"props":5842,"children":5843},{"class":1036,"line":338},[5844],{"type":993,"tag":1034,"props":5845,"children":5846},{"style":1207},[5847],{"type":998,"value":5848},"        ],\n",{"type":993,"tag":1034,"props":5850,"children":5851},{"class":1036,"line":347},[5852],{"type":993,"tag":1034,"props":5853,"children":5854},{"style":1207},[5855],{"type":998,"value":5856},"    },\n",{"type":993,"tag":1034,"props":5858,"children":5859},{"class":1036,"line":356},[5860],{"type":993,"tag":1034,"props":5861,"children":5862},{"style":1207},[5863],{"type":998,"value":5864},"    entry_points={\n",{"type":993,"tag":1034,"props":5866,"children":5867},{"class":1036,"line":365},[5868],{"type":993,"tag":1034,"props":5869,"children":5870},{"style":1207},[5871],{"type":998,"value":5872},"        \"console_scripts\": [\n",{"type":993,"tag":1034,"props":5874,"children":5875},{"class":1036,"line":374},[5876],{"type":993,"tag":1034,"props":5877,"children":5878},{"style":1207},[5879],{"type":998,"value":5880},"            \"my-tool=my_package.cli:main\",\n",{"type":993,"tag":1034,"props":5882,"children":5883},{"class":1036,"line":384},[5884],{"type":993,"tag":1034,"props":5885,"children":5886},{"style":1207},[5887],{"type":998,"value":5848},{"type":993,"tag":1034,"props":5889,"children":5890},{"class":1036,"line":393},[5891],{"type":993,"tag":1034,"props":5892,"children":5893},{"style":1207},[5894],{"type":998,"value":5856},{"type":993,"tag":1034,"props":5896,"children":5897},{"class":1036,"line":402},[5898],{"type":993,"tag":1034,"props":5899,"children":5900},{"style":1207},[5901],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5903,"children":5904},{"class":1036,"line":411},[5905,5910],{"type":993,"tag":1034,"props":5906,"children":5907},{"style":1207},[5908],{"type":998,"value":5909},"'''",{"type":993,"tag":1034,"props":5911,"children":5912},{"style":1201},[5913],{"type":998,"value":4063},{"type":993,"tag":1034,"props":5915,"children":5916},{"class":1036,"line":420},[5917],{"type":993,"tag":1034,"props":5918,"children":5919},{"style":1201},[5920],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5922,"children":5923},{"class":1036,"line":429},[5924,5928,5932,5937],{"type":993,"tag":1034,"props":5925,"children":5926},{"style":1195},[5927],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5929,"children":5930},{"style":1201},[5931],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5933,"children":5934},{"style":1207},[5935],{"type":998,"value":5936},"\"Example setup.py for package creation:\"",{"type":993,"tag":1034,"props":5938,"children":5939},{"style":1201},[5940],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5942,"children":5943},{"class":1036,"line":438},[5944,5948],{"type":993,"tag":1034,"props":5945,"children":5946},{"style":1195},[5947],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5949,"children":5950},{"style":1201},[5951],{"type":998,"value":5952},"(setup_py_content)\n",{"type":993,"tag":1034,"props":5954,"children":5955},{"class":1036,"line":447},[5956],{"type":993,"tag":1034,"props":5957,"children":5958},{"style":1201},[5959],{"type":998,"value":1622},{"type":993,"tag":1034,"props":5961,"children":5962},{"class":1036,"line":457},[5963,5967,5971,5975,5979,5984],{"type":993,"tag":1034,"props":5964,"children":5965},{"style":1195},[5966],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5968,"children":5969},{"style":1201},[5970],{"type":998,"value":1204},{"type":993,"tag":1034,"props":5972,"children":5973},{"style":1207},[5974],{"type":998,"value":2097},{"type":993,"tag":1034,"props":5976,"children":5977},{"style":1195},[5978],{"type":998,"value":2878},{"type":993,"tag":1034,"props":5980,"children":5981},{"style":1207},[5982],{"type":998,"value":5983},"Package Development Steps:\"",{"type":993,"tag":1034,"props":5985,"children":5986},{"style":1201},[5987],{"type":998,"value":1215},{"type":993,"tag":1034,"props":5989,"children":5990},{"class":1036,"line":466},[5991,5995,5999,6004],{"type":993,"tag":1034,"props":5992,"children":5993},{"style":1195},[5994],{"type":998,"value":2478},{"type":993,"tag":1034,"props":5996,"children":5997},{"style":1201},[5998],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6000,"children":6001},{"style":1207},[6002],{"type":998,"value":6003},"\"1. Create package structure with __init__.py\"",{"type":993,"tag":1034,"props":6005,"children":6006},{"style":1201},[6007],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6009,"children":6010},{"class":1036,"line":475},[6011,6015,6019,6024],{"type":993,"tag":1034,"props":6012,"children":6013},{"style":1195},[6014],{"type":998,"value":2478},{"type":993,"tag":1034,"props":6016,"children":6017},{"style":1201},[6018],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6020,"children":6021},{"style":1207},[6022],{"type":998,"value":6023},"\"2. Write setup.py with metadata and dependencies\"",{"type":993,"tag":1034,"props":6025,"children":6026},{"style":1201},[6027],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6029,"children":6030},{"class":1036,"line":484},[6031,6035,6039,6044],{"type":993,"tag":1034,"props":6032,"children":6033},{"style":1195},[6034],{"type":998,"value":2478},{"type":993,"tag":1034,"props":6036,"children":6037},{"style":1201},[6038],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6040,"children":6041},{"style":1207},[6042],{"type":998,"value":6043},"\"3. Add README.md with usage instructions\"",{"type":993,"tag":1034,"props":6045,"children":6046},{"style":1201},[6047],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6049,"children":6050},{"class":1036,"line":493},[6051,6055,6059,6064],{"type":993,"tag":1034,"props":6052,"children":6053},{"style":1195},[6054],{"type":998,"value":2478},{"type":993,"tag":1034,"props":6056,"children":6057},{"style":1201},[6058],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6060,"children":6061},{"style":1207},[6062],{"type":998,"value":6063},"\"4. Test installation: pip install -e .\"",{"type":993,"tag":1034,"props":6065,"children":6066},{"style":1201},[6067],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6069,"children":6070},{"class":1036,"line":502},[6071,6075,6079,6084],{"type":993,"tag":1034,"props":6072,"children":6073},{"style":1195},[6074],{"type":998,"value":2478},{"type":993,"tag":1034,"props":6076,"children":6077},{"style":1201},[6078],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6080,"children":6081},{"style":1207},[6082],{"type":998,"value":6083},"\"5. Build package: python setup.py sdist bdist_wheel\"",{"type":993,"tag":1034,"props":6085,"children":6086},{"style":1201},[6087],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6089,"children":6090},{"class":1036,"line":511},[6091,6095,6099,6104],{"type":993,"tag":1034,"props":6092,"children":6093},{"style":1195},[6094],{"type":998,"value":2478},{"type":993,"tag":1034,"props":6096,"children":6097},{"style":1201},[6098],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6100,"children":6101},{"style":1207},[6102],{"type":998,"value":6103},"\"6. Upload to PyPI: twine upload dist/*\"",{"type":993,"tag":1034,"props":6105,"children":6106},{"style":1201},[6107],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6109,"children":6110},{"class":1036,"line":520},[6111],{"type":993,"tag":1034,"props":6112,"children":6113},{"emptyLinePlaceholder":13},[6114],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6116,"children":6117},{"class":1036,"line":530},[6118],{"type":993,"tag":1034,"props":6119,"children":6120},{"style":1201},[6121],{"type":998,"value":6122},"package_creation_example()\n",{"type":993,"tag":1269,"props":6124,"children":6128},{"emoji":6125,"title":6126,"type":6127},"✅","Best Practices","success",[6129,6137,6160,6168,6191,6199,6222,6230],{"type":993,"tag":1001,"props":6130,"children":6131},{},[6132],{"type":993,"tag":1279,"props":6133,"children":6134},{},[6135],{"type":998,"value":6136},"Package Management Guidelines:",{"type":993,"tag":1285,"props":6138,"children":6139},{},[6140,6145,6150,6155],{"type":993,"tag":1289,"props":6141,"children":6142},{},[6143],{"type":998,"value":6144},"Always use virtual environments for project isolation",{"type":993,"tag":1289,"props":6146,"children":6147},{},[6148],{"type":998,"value":6149},"Pin exact versions in production, use ranges in development",{"type":993,"tag":1289,"props":6151,"children":6152},{},[6153],{"type":998,"value":6154},"Keep requirements.txt updated and committed to version control",{"type":993,"tag":1289,"props":6156,"children":6157},{},[6158],{"type":998,"value":6159},"Regularly update packages and test for compatibility",{"type":993,"tag":1001,"props":6161,"children":6162},{},[6163],{"type":993,"tag":1279,"props":6164,"children":6165},{},[6166],{"type":998,"value":6167},"Security Considerations:",{"type":993,"tag":1285,"props":6169,"children":6170},{},[6171,6176,6181,6186],{"type":993,"tag":1289,"props":6172,"children":6173},{},[6174],{"type":998,"value":6175},"Audit packages for known vulnerabilities regularly",{"type":993,"tag":1289,"props":6177,"children":6178},{},[6179],{"type":998,"value":6180},"Use trusted sources and verify package integrity",{"type":993,"tag":1289,"props":6182,"children":6183},{},[6184],{"type":998,"value":6185},"Review dependencies before adding to production",{"type":993,"tag":1289,"props":6187,"children":6188},{},[6189],{"type":998,"value":6190},"Keep development and production requirements separate",{"type":993,"tag":1001,"props":6192,"children":6193},{},[6194],{"type":993,"tag":1279,"props":6195,"children":6196},{},[6197],{"type":998,"value":6198},"Team Collaboration:",{"type":993,"tag":1285,"props":6200,"children":6201},{},[6202,6207,6212,6217],{"type":993,"tag":1289,"props":6203,"children":6204},{},[6205],{"type":998,"value":6206},"Document environment setup in README files",{"type":993,"tag":1289,"props":6208,"children":6209},{},[6210],{"type":998,"value":6211},"Use consistent Python versions across team",{"type":993,"tag":1289,"props":6213,"children":6214},{},[6215],{"type":998,"value":6216},"Share virtual environment requirements files",{"type":993,"tag":1289,"props":6218,"children":6219},{},[6220],{"type":998,"value":6221},"Automate dependency installation in CI/CD pipelines",{"type":993,"tag":1001,"props":6223,"children":6224},{},[6225],{"type":993,"tag":1279,"props":6226,"children":6227},{},[6228],{"type":998,"value":6229},"Performance Tips:",{"type":993,"tag":1285,"props":6231,"children":6232},{},[6233,6238,6243,6248],{"type":993,"tag":1289,"props":6234,"children":6235},{},[6236],{"type":998,"value":6237},"Use wheel packages for faster installation",{"type":993,"tag":1289,"props":6239,"children":6240},{},[6241],{"type":998,"value":6242},"Cache downloaded packages in CI environments",{"type":993,"tag":1289,"props":6244,"children":6245},{},[6246],{"type":998,"value":6247},"Consider using dependency management tools like poetry",{"type":993,"tag":1289,"props":6249,"children":6250},{},[6251],{"type":998,"value":6252},"Monitor package sizes and installation times",{"type":993,"tag":6254,"props":6255,"children":6257},"content-exercise",{":widget-view":6256,"category":6,"id":775},"true",[],{"type":993,"tag":6259,"props":6260,"children":6263},"exercise",{"hint":6261,"prompt":6262},"Use a list to store package names and versions, write to text file with proper format","Create a simple requirements.txt generator that creates a list of Python packages needed for a project. Build functions to add packages, save to file, and load from file.",[6264],{"type":993,"tag":1025,"props":6265,"children":6267},{"className":1027,"code":6266,"language":6,"meta":8,"style":8},"def create_requirements():\n    # TODO: Return empty list for packages\n    pass\n\ndef add_package(requirements, package_name, version=None):\n    # TODO: Add package to requirements list\n    # TODO: Format as \"package==version\" or just \"package\"\n    pass\n\ndef save_requirements(requirements, filename=\"requirements.txt\"):\n    # TODO: Save requirements list to file\n    # TODO: Each package on a new line\n    pass\n\ndef load_requirements(filename=\"requirements.txt\"):\n    # TODO: Load requirements from file\n    # TODO: Return empty list if file doesn't exist\n    pass\n\ndef display_requirements(requirements):\n    # TODO: Print all requirements in readable format\n    pass\n\n# TODO: Test your functions\nrequirements = create_requirements()\n\n# Add some common packages\nadd_package(requirements, \"requests\", \"2.31.0\")\nadd_package(requirements, \"flask\", \"2.3.2\")\nadd_package(requirements, \"pytest\", \"7.4.0\")\nadd_package(requirements, \"numpy\")  # No specific version\n\n# Display and save\ndisplay_requirements(requirements)\nsave_requirements(requirements)\nprint(\"Requirements saved to file\")\n\n# Test loading\nloaded_requirements = load_requirements()\nprint(f\"Loaded {len(loaded_requirements)} requirements from file\")\n",[6268],{"type":993,"tag":1007,"props":6269,"children":6270},{"__ignoreMap":8},[6271,6287,6305,6313,6320,6349,6365,6381,6388,6395,6425,6441,6457,6464,6471,6500,6516,6532,6539,6546,6563,6579,6586,6593,6610,6627,6634,6642,6666,6689,6714,6735,6742,6750,6758,6766,6786,6793,6801,6818],{"type":993,"tag":1034,"props":6272,"children":6273},{"class":1036,"line":12},[6274,6278,6283],{"type":993,"tag":1034,"props":6275,"children":6276},{"style":1577},[6277],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6279,"children":6280},{"style":1583},[6281],{"type":998,"value":6282}," create_requirements",{"type":993,"tag":1034,"props":6284,"children":6285},{"style":1201},[6286],{"type":998,"value":2521},{"type":993,"tag":1034,"props":6288,"children":6289},{"class":1036,"line":27},[6290,6295,6300],{"type":993,"tag":1034,"props":6291,"children":6292},{"style":1040},[6293],{"type":998,"value":6294},"    # ",{"type":993,"tag":1034,"props":6296,"children":6297},{"style":1577},[6298],{"type":998,"value":6299},"TODO",{"type":993,"tag":1034,"props":6301,"children":6302},{"style":1040},[6303],{"type":998,"value":6304},": Return empty list for packages\n",{"type":993,"tag":1034,"props":6306,"children":6307},{"class":1036,"line":36},[6308],{"type":993,"tag":1034,"props":6309,"children":6310},{"style":1577},[6311],{"type":998,"value":6312},"    pass\n",{"type":993,"tag":1034,"props":6314,"children":6315},{"class":1036,"line":45},[6316],{"type":993,"tag":1034,"props":6317,"children":6318},{"emptyLinePlaceholder":13},[6319],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6321,"children":6322},{"class":1036,"line":54},[6323,6327,6332,6337,6341,6345],{"type":993,"tag":1034,"props":6324,"children":6325},{"style":1577},[6326],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6328,"children":6329},{"style":1583},[6330],{"type":998,"value":6331}," add_package",{"type":993,"tag":1034,"props":6333,"children":6334},{"style":1201},[6335],{"type":998,"value":6336},"(requirements, package_name, version",{"type":993,"tag":1034,"props":6338,"children":6339},{"style":1577},[6340],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6342,"children":6343},{"style":1195},[6344],{"type":998,"value":1601},{"type":993,"tag":1034,"props":6346,"children":6347},{"style":1201},[6348],{"type":998,"value":1606},{"type":993,"tag":1034,"props":6350,"children":6351},{"class":1036,"line":63},[6352,6356,6360],{"type":993,"tag":1034,"props":6353,"children":6354},{"style":1040},[6355],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6357,"children":6358},{"style":1577},[6359],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6361,"children":6362},{"style":1040},[6363],{"type":998,"value":6364},": Add package to requirements list\n",{"type":993,"tag":1034,"props":6366,"children":6367},{"class":1036,"line":72},[6368,6372,6376],{"type":993,"tag":1034,"props":6369,"children":6370},{"style":1040},[6371],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6373,"children":6374},{"style":1577},[6375],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6377,"children":6378},{"style":1040},[6379],{"type":998,"value":6380},": Format as \"package==version\" or just \"package\"\n",{"type":993,"tag":1034,"props":6382,"children":6383},{"class":1036,"line":81},[6384],{"type":993,"tag":1034,"props":6385,"children":6386},{"style":1577},[6387],{"type":998,"value":6312},{"type":993,"tag":1034,"props":6389,"children":6390},{"class":1036,"line":91},[6391],{"type":993,"tag":1034,"props":6392,"children":6393},{"emptyLinePlaceholder":13},[6394],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6396,"children":6397},{"class":1036,"line":100},[6398,6402,6407,6412,6416,6421],{"type":993,"tag":1034,"props":6399,"children":6400},{"style":1577},[6401],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6403,"children":6404},{"style":1583},[6405],{"type":998,"value":6406}," save_requirements",{"type":993,"tag":1034,"props":6408,"children":6409},{"style":1201},[6410],{"type":998,"value":6411},"(requirements, filename",{"type":993,"tag":1034,"props":6413,"children":6414},{"style":1577},[6415],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6417,"children":6418},{"style":1207},[6419],{"type":998,"value":6420},"\"requirements.txt\"",{"type":993,"tag":1034,"props":6422,"children":6423},{"style":1201},[6424],{"type":998,"value":1606},{"type":993,"tag":1034,"props":6426,"children":6427},{"class":1036,"line":109},[6428,6432,6436],{"type":993,"tag":1034,"props":6429,"children":6430},{"style":1040},[6431],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6433,"children":6434},{"style":1577},[6435],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6437,"children":6438},{"style":1040},[6439],{"type":998,"value":6440},": Save requirements list to file\n",{"type":993,"tag":1034,"props":6442,"children":6443},{"class":1036,"line":118},[6444,6448,6452],{"type":993,"tag":1034,"props":6445,"children":6446},{"style":1040},[6447],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6449,"children":6450},{"style":1577},[6451],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6453,"children":6454},{"style":1040},[6455],{"type":998,"value":6456},": Each package on a new line\n",{"type":993,"tag":1034,"props":6458,"children":6459},{"class":1036,"line":127},[6460],{"type":993,"tag":1034,"props":6461,"children":6462},{"style":1577},[6463],{"type":998,"value":6312},{"type":993,"tag":1034,"props":6465,"children":6466},{"class":1036,"line":136},[6467],{"type":993,"tag":1034,"props":6468,"children":6469},{"emptyLinePlaceholder":13},[6470],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6472,"children":6473},{"class":1036,"line":146},[6474,6478,6483,6488,6492,6496],{"type":993,"tag":1034,"props":6475,"children":6476},{"style":1577},[6477],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6479,"children":6480},{"style":1583},[6481],{"type":998,"value":6482}," load_requirements",{"type":993,"tag":1034,"props":6484,"children":6485},{"style":1201},[6486],{"type":998,"value":6487},"(filename",{"type":993,"tag":1034,"props":6489,"children":6490},{"style":1577},[6491],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6493,"children":6494},{"style":1207},[6495],{"type":998,"value":6420},{"type":993,"tag":1034,"props":6497,"children":6498},{"style":1201},[6499],{"type":998,"value":1606},{"type":993,"tag":1034,"props":6501,"children":6502},{"class":1036,"line":155},[6503,6507,6511],{"type":993,"tag":1034,"props":6504,"children":6505},{"style":1040},[6506],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6508,"children":6509},{"style":1577},[6510],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6512,"children":6513},{"style":1040},[6514],{"type":998,"value":6515},": Load requirements from file\n",{"type":993,"tag":1034,"props":6517,"children":6518},{"class":1036,"line":164},[6519,6523,6527],{"type":993,"tag":1034,"props":6520,"children":6521},{"style":1040},[6522],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6524,"children":6525},{"style":1577},[6526],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6528,"children":6529},{"style":1040},[6530],{"type":998,"value":6531},": Return empty list if file doesn't exist\n",{"type":993,"tag":1034,"props":6533,"children":6534},{"class":1036,"line":173},[6535],{"type":993,"tag":1034,"props":6536,"children":6537},{"style":1577},[6538],{"type":998,"value":6312},{"type":993,"tag":1034,"props":6540,"children":6541},{"class":1036,"line":182},[6542],{"type":993,"tag":1034,"props":6543,"children":6544},{"emptyLinePlaceholder":13},[6545],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6547,"children":6548},{"class":1036,"line":191},[6549,6553,6558],{"type":993,"tag":1034,"props":6550,"children":6551},{"style":1577},[6552],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6554,"children":6555},{"style":1583},[6556],{"type":998,"value":6557}," display_requirements",{"type":993,"tag":1034,"props":6559,"children":6560},{"style":1201},[6561],{"type":998,"value":6562},"(requirements):\n",{"type":993,"tag":1034,"props":6564,"children":6565},{"class":1036,"line":201},[6566,6570,6574],{"type":993,"tag":1034,"props":6567,"children":6568},{"style":1040},[6569],{"type":998,"value":6294},{"type":993,"tag":1034,"props":6571,"children":6572},{"style":1577},[6573],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6575,"children":6576},{"style":1040},[6577],{"type":998,"value":6578},": Print all requirements in readable format\n",{"type":993,"tag":1034,"props":6580,"children":6581},{"class":1036,"line":210},[6582],{"type":993,"tag":1034,"props":6583,"children":6584},{"style":1577},[6585],{"type":998,"value":6312},{"type":993,"tag":1034,"props":6587,"children":6588},{"class":1036,"line":219},[6589],{"type":993,"tag":1034,"props":6590,"children":6591},{"emptyLinePlaceholder":13},[6592],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6594,"children":6595},{"class":1036,"line":228},[6596,6601,6605],{"type":993,"tag":1034,"props":6597,"children":6598},{"style":1040},[6599],{"type":998,"value":6600},"# ",{"type":993,"tag":1034,"props":6602,"children":6603},{"style":1577},[6604],{"type":998,"value":6299},{"type":993,"tag":1034,"props":6606,"children":6607},{"style":1040},[6608],{"type":998,"value":6609},": Test your functions\n",{"type":993,"tag":1034,"props":6611,"children":6612},{"class":1036,"line":238},[6613,6618,6622],{"type":993,"tag":1034,"props":6614,"children":6615},{"style":1201},[6616],{"type":998,"value":6617},"requirements ",{"type":993,"tag":1034,"props":6619,"children":6620},{"style":1577},[6621],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6623,"children":6624},{"style":1201},[6625],{"type":998,"value":6626}," create_requirements()\n",{"type":993,"tag":1034,"props":6628,"children":6629},{"class":1036,"line":247},[6630],{"type":993,"tag":1034,"props":6631,"children":6632},{"emptyLinePlaceholder":13},[6633],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6635,"children":6636},{"class":1036,"line":256},[6637],{"type":993,"tag":1034,"props":6638,"children":6639},{"style":1040},[6640],{"type":998,"value":6641},"# Add some common packages\n",{"type":993,"tag":1034,"props":6643,"children":6644},{"class":1036,"line":265},[6645,6650,6654,6658,6662],{"type":993,"tag":1034,"props":6646,"children":6647},{"style":1201},[6648],{"type":998,"value":6649},"add_package(requirements, ",{"type":993,"tag":1034,"props":6651,"children":6652},{"style":1207},[6653],{"type":998,"value":2402},{"type":993,"tag":1034,"props":6655,"children":6656},{"style":1201},[6657],{"type":998,"value":1698},{"type":993,"tag":1034,"props":6659,"children":6660},{"style":1207},[6661],{"type":998,"value":1670},{"type":993,"tag":1034,"props":6663,"children":6664},{"style":1201},[6665],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6667,"children":6668},{"class":1036,"line":274},[6669,6673,6677,6681,6685],{"type":993,"tag":1034,"props":6670,"children":6671},{"style":1201},[6672],{"type":998,"value":6649},{"type":993,"tag":1034,"props":6674,"children":6675},{"style":1207},[6676],{"type":998,"value":2411},{"type":993,"tag":1034,"props":6678,"children":6679},{"style":1201},[6680],{"type":998,"value":1698},{"type":993,"tag":1034,"props":6682,"children":6683},{"style":1207},[6684],{"type":998,"value":1779},{"type":993,"tag":1034,"props":6686,"children":6687},{"style":1201},[6688],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6690,"children":6691},{"class":1036,"line":284},[6692,6696,6701,6705,6710],{"type":993,"tag":1034,"props":6693,"children":6694},{"style":1201},[6695],{"type":998,"value":6649},{"type":993,"tag":1034,"props":6697,"children":6698},{"style":1207},[6699],{"type":998,"value":6700},"\"pytest\"",{"type":993,"tag":1034,"props":6702,"children":6703},{"style":1201},[6704],{"type":998,"value":1698},{"type":993,"tag":1034,"props":6706,"children":6707},{"style":1207},[6708],{"type":998,"value":6709},"\"7.4.0\"",{"type":993,"tag":1034,"props":6711,"children":6712},{"style":1201},[6713],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6715,"children":6716},{"class":1036,"line":293},[6717,6721,6725,6730],{"type":993,"tag":1034,"props":6718,"children":6719},{"style":1201},[6720],{"type":998,"value":6649},{"type":993,"tag":1034,"props":6722,"children":6723},{"style":1207},[6724],{"type":998,"value":1902},{"type":993,"tag":1034,"props":6726,"children":6727},{"style":1201},[6728],{"type":998,"value":6729},")  ",{"type":993,"tag":1034,"props":6731,"children":6732},{"style":1040},[6733],{"type":998,"value":6734},"# No specific version\n",{"type":993,"tag":1034,"props":6736,"children":6737},{"class":1036,"line":302},[6738],{"type":993,"tag":1034,"props":6739,"children":6740},{"emptyLinePlaceholder":13},[6741],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6743,"children":6744},{"class":1036,"line":311},[6745],{"type":993,"tag":1034,"props":6746,"children":6747},{"style":1040},[6748],{"type":998,"value":6749},"# Display and save\n",{"type":993,"tag":1034,"props":6751,"children":6752},{"class":1036,"line":320},[6753],{"type":993,"tag":1034,"props":6754,"children":6755},{"style":1201},[6756],{"type":998,"value":6757},"display_requirements(requirements)\n",{"type":993,"tag":1034,"props":6759,"children":6760},{"class":1036,"line":329},[6761],{"type":993,"tag":1034,"props":6762,"children":6763},{"style":1201},[6764],{"type":998,"value":6765},"save_requirements(requirements)\n",{"type":993,"tag":1034,"props":6767,"children":6768},{"class":1036,"line":338},[6769,6773,6777,6782],{"type":993,"tag":1034,"props":6770,"children":6771},{"style":1195},[6772],{"type":998,"value":1198},{"type":993,"tag":1034,"props":6774,"children":6775},{"style":1201},[6776],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6778,"children":6779},{"style":1207},[6780],{"type":998,"value":6781},"\"Requirements saved to file\"",{"type":993,"tag":1034,"props":6783,"children":6784},{"style":1201},[6785],{"type":998,"value":1215},{"type":993,"tag":1034,"props":6787,"children":6788},{"class":1036,"line":347},[6789],{"type":993,"tag":1034,"props":6790,"children":6791},{"emptyLinePlaceholder":13},[6792],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6794,"children":6795},{"class":1036,"line":356},[6796],{"type":993,"tag":1034,"props":6797,"children":6798},{"style":1040},[6799],{"type":998,"value":6800},"# Test loading\n",{"type":993,"tag":1034,"props":6802,"children":6803},{"class":1036,"line":365},[6804,6809,6813],{"type":993,"tag":1034,"props":6805,"children":6806},{"style":1201},[6807],{"type":998,"value":6808},"loaded_requirements ",{"type":993,"tag":1034,"props":6810,"children":6811},{"style":1577},[6812],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6814,"children":6815},{"style":1201},[6816],{"type":998,"value":6817}," load_requirements()\n",{"type":993,"tag":1034,"props":6819,"children":6820},{"class":1036,"line":374},[6821,6825,6829,6833,6838,6843,6848,6852,6857],{"type":993,"tag":1034,"props":6822,"children":6823},{"style":1195},[6824],{"type":998,"value":1198},{"type":993,"tag":1034,"props":6826,"children":6827},{"style":1201},[6828],{"type":998,"value":1204},{"type":993,"tag":1034,"props":6830,"children":6831},{"style":1577},[6832],{"type":998,"value":2020},{"type":993,"tag":1034,"props":6834,"children":6835},{"style":1207},[6836],{"type":998,"value":6837},"\"Loaded ",{"type":993,"tag":1034,"props":6839,"children":6840},{"style":1195},[6841],{"type":998,"value":6842},"{len",{"type":993,"tag":1034,"props":6844,"children":6845},{"style":1201},[6846],{"type":998,"value":6847},"(loaded_requirements)",{"type":993,"tag":1034,"props":6849,"children":6850},{"style":1195},[6851],{"type":998,"value":2040},{"type":993,"tag":1034,"props":6853,"children":6854},{"style":1207},[6855],{"type":998,"value":6856}," requirements from file\"",{"type":993,"tag":1034,"props":6858,"children":6859},{"style":1201},[6860],{"type":998,"value":1215},{"type":993,"tag":1543,"props":6862,"children":6864},{"id":6863},"solution-and-explanation",[6865],{"type":998,"value":6866},"Solution and Explanation 💡",{"type":993,"tag":6868,"props":6869,"children":6870},"details",{},[6871,6879,8156,8164],{"type":993,"tag":6872,"props":6873,"children":6876},"summary",{"className":6874},[6875],"cursor-pointer",[6877],{"type":998,"value":6878},"Click to see the complete solution",{"type":993,"tag":1021,"props":6880,"children":6881},{},[6882],{"type":993,"tag":1025,"props":6883,"children":6885},{"className":1027,"code":6884,"language":6,"meta":8,"style":8},"def create_requirements():\n    # Return empty list for packages\n    return []\n\ndef add_package(requirements, package_name, version=None):\n    # Add package to requirements list\n    if version:\n        # Format as \"package==version\"\n        package_string = f\"{package_name}=={version}\"\n    else:\n        # Just package name\n        package_string = package_name\n    \n    requirements.append(package_string)\n    print(f\"Added package: {package_string}\")\n\ndef save_requirements(requirements, filename=\"requirements.txt\"):\n    # Save requirements list to file\n    try:\n        with open(filename, 'w') as file:\n            # Each package on a new line\n            for package in requirements:\n                file.write(package + '\\n')\n        print(f\"Successfully saved {len(requirements)} packages to {filename}\")\n    except Exception as e:\n        print(f\"Error saving requirements: {e}\")\n\ndef load_requirements(filename=\"requirements.txt\"):\n    # Load requirements from file\n    try:\n        with open(filename, 'r') as file:\n            requirements = []\n            for line in file:\n                package = line.strip()\n                if package:  # Skip empty lines\n                    requirements.append(package)\n        return requirements\n    except FileNotFoundError:\n        print(f\"File {filename} not found. Starting with empty requirements.\")\n        return []\n\ndef display_requirements(requirements):\n    # Print all requirements in readable format\n    if not requirements:\n        print(\"No packages in requirements.\")\n        return\n    \n    print(\"\\nProject Requirements:\")\n    print(\"-\" * 25)\n    for i, package in enumerate(requirements, 1):\n        print(f\"{i}. {package}\")\n\n# Test your functions\nrequirements = create_requirements()\n\n# Add some common packages\nadd_package(requirements, \"requests\", \"2.31.0\")\nadd_package(requirements, \"flask\", \"2.3.2\")\nadd_package(requirements, \"pytest\", \"7.4.0\")\nadd_package(requirements, \"numpy\")  # No specific version\n\n# Display and save\ndisplay_requirements(requirements)\nsave_requirements(requirements)\nprint(\"Requirements saved to file\")\n\n# Test loading\nloaded_requirements = load_requirements()\nprint(f\"Loaded {len(loaded_requirements)} requirements from file\")\ndisplay_requirements(loaded_requirements)\n",[6886],{"type":993,"tag":1007,"props":6887,"children":6888},{"__ignoreMap":8},[6889,6904,6912,6925,6932,6959,6967,6979,6987,7044,7055,7063,7079,7086,7094,7135,7142,7169,7177,7189,7232,7240,7261,7297,7356,7379,7420,7427,7454,7462,7473,7509,7525,7549,7566,7584,7592,7604,7620,7661,7672,7679,7694,7702,7718,7738,7746,7753,7781,7809,7844,7901,7908,7916,7931,7938,7945,7968,7991,8014,8033,8040,8047,8054,8061,8080,8087,8094,8109,8148],{"type":993,"tag":1034,"props":6890,"children":6891},{"class":1036,"line":12},[6892,6896,6900],{"type":993,"tag":1034,"props":6893,"children":6894},{"style":1577},[6895],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6897,"children":6898},{"style":1583},[6899],{"type":998,"value":6282},{"type":993,"tag":1034,"props":6901,"children":6902},{"style":1201},[6903],{"type":998,"value":2521},{"type":993,"tag":1034,"props":6905,"children":6906},{"class":1036,"line":27},[6907],{"type":993,"tag":1034,"props":6908,"children":6909},{"style":1040},[6910],{"type":998,"value":6911},"    # Return empty list for packages\n",{"type":993,"tag":1034,"props":6913,"children":6914},{"class":1036,"line":36},[6915,6920],{"type":993,"tag":1034,"props":6916,"children":6917},{"style":1577},[6918],{"type":998,"value":6919},"    return",{"type":993,"tag":1034,"props":6921,"children":6922},{"style":1201},[6923],{"type":998,"value":6924}," []\n",{"type":993,"tag":1034,"props":6926,"children":6927},{"class":1036,"line":45},[6928],{"type":993,"tag":1034,"props":6929,"children":6930},{"emptyLinePlaceholder":13},[6931],{"type":998,"value":1051},{"type":993,"tag":1034,"props":6933,"children":6934},{"class":1036,"line":54},[6935,6939,6943,6947,6951,6955],{"type":993,"tag":1034,"props":6936,"children":6937},{"style":1577},[6938],{"type":998,"value":1580},{"type":993,"tag":1034,"props":6940,"children":6941},{"style":1583},[6942],{"type":998,"value":6331},{"type":993,"tag":1034,"props":6944,"children":6945},{"style":1201},[6946],{"type":998,"value":6336},{"type":993,"tag":1034,"props":6948,"children":6949},{"style":1577},[6950],{"type":998,"value":1596},{"type":993,"tag":1034,"props":6952,"children":6953},{"style":1195},[6954],{"type":998,"value":1601},{"type":993,"tag":1034,"props":6956,"children":6957},{"style":1201},[6958],{"type":998,"value":1606},{"type":993,"tag":1034,"props":6960,"children":6961},{"class":1036,"line":63},[6962],{"type":993,"tag":1034,"props":6963,"children":6964},{"style":1040},[6965],{"type":998,"value":6966},"    # Add package to requirements list\n",{"type":993,"tag":1034,"props":6968,"children":6969},{"class":1036,"line":72},[6970,6974],{"type":993,"tag":1034,"props":6971,"children":6972},{"style":1577},[6973],{"type":998,"value":1971},{"type":993,"tag":1034,"props":6975,"children":6976},{"style":1201},[6977],{"type":998,"value":6978}," version:\n",{"type":993,"tag":1034,"props":6980,"children":6981},{"class":1036,"line":81},[6982],{"type":993,"tag":1034,"props":6983,"children":6984},{"style":1040},[6985],{"type":998,"value":6986},"        # Format as \"package==version\"\n",{"type":993,"tag":1034,"props":6988,"children":6989},{"class":1036,"line":91},[6990,6995,6999,7004,7008,7012,7017,7021,7026,7030,7035,7039],{"type":993,"tag":1034,"props":6991,"children":6992},{"style":1201},[6993],{"type":998,"value":6994},"        package_string ",{"type":993,"tag":1034,"props":6996,"children":6997},{"style":1577},[6998],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7000,"children":7001},{"style":1577},[7002],{"type":998,"value":7003}," f",{"type":993,"tag":1034,"props":7005,"children":7006},{"style":1207},[7007],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7009,"children":7010},{"style":1195},[7011],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7013,"children":7014},{"style":1201},[7015],{"type":998,"value":7016},"package_name",{"type":993,"tag":1034,"props":7018,"children":7019},{"style":1195},[7020],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7022,"children":7023},{"style":1207},[7024],{"type":998,"value":7025},"==",{"type":993,"tag":1034,"props":7027,"children":7028},{"style":1195},[7029],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7031,"children":7032},{"style":1201},[7033],{"type":998,"value":7034},"version",{"type":993,"tag":1034,"props":7036,"children":7037},{"style":1195},[7038],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7040,"children":7041},{"style":1207},[7042],{"type":998,"value":7043},"\"\n",{"type":993,"tag":1034,"props":7045,"children":7046},{"class":1036,"line":100},[7047,7051],{"type":993,"tag":1034,"props":7048,"children":7049},{"style":1577},[7050],{"type":998,"value":2307},{"type":993,"tag":1034,"props":7052,"children":7053},{"style":1201},[7054],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7056,"children":7057},{"class":1036,"line":109},[7058],{"type":993,"tag":1034,"props":7059,"children":7060},{"style":1040},[7061],{"type":998,"value":7062},"        # Just package name\n",{"type":993,"tag":1034,"props":7064,"children":7065},{"class":1036,"line":118},[7066,7070,7074],{"type":993,"tag":1034,"props":7067,"children":7068},{"style":1201},[7069],{"type":998,"value":6994},{"type":993,"tag":1034,"props":7071,"children":7072},{"style":1577},[7073],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7075,"children":7076},{"style":1201},[7077],{"type":998,"value":7078}," package_name\n",{"type":993,"tag":1034,"props":7080,"children":7081},{"class":1036,"line":127},[7082],{"type":993,"tag":1034,"props":7083,"children":7084},{"style":1201},[7085],{"type":998,"value":1622},{"type":993,"tag":1034,"props":7087,"children":7088},{"class":1036,"line":136},[7089],{"type":993,"tag":1034,"props":7090,"children":7091},{"style":1201},[7092],{"type":998,"value":7093},"    requirements.append(package_string)\n",{"type":993,"tag":1034,"props":7095,"children":7096},{"class":1036,"line":146},[7097,7101,7105,7109,7114,7118,7123,7127,7131],{"type":993,"tag":1034,"props":7098,"children":7099},{"style":1195},[7100],{"type":998,"value":2478},{"type":993,"tag":1034,"props":7102,"children":7103},{"style":1201},[7104],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7106,"children":7107},{"style":1577},[7108],{"type":998,"value":2020},{"type":993,"tag":1034,"props":7110,"children":7111},{"style":1207},[7112],{"type":998,"value":7113},"\"Added package: ",{"type":993,"tag":1034,"props":7115,"children":7116},{"style":1195},[7117],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7119,"children":7120},{"style":1201},[7121],{"type":998,"value":7122},"package_string",{"type":993,"tag":1034,"props":7124,"children":7125},{"style":1195},[7126],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7128,"children":7129},{"style":1207},[7130],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7132,"children":7133},{"style":1201},[7134],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7136,"children":7137},{"class":1036,"line":155},[7138],{"type":993,"tag":1034,"props":7139,"children":7140},{"emptyLinePlaceholder":13},[7141],{"type":998,"value":1051},{"type":993,"tag":1034,"props":7143,"children":7144},{"class":1036,"line":164},[7145,7149,7153,7157,7161,7165],{"type":993,"tag":1034,"props":7146,"children":7147},{"style":1577},[7148],{"type":998,"value":1580},{"type":993,"tag":1034,"props":7150,"children":7151},{"style":1583},[7152],{"type":998,"value":6406},{"type":993,"tag":1034,"props":7154,"children":7155},{"style":1201},[7156],{"type":998,"value":6411},{"type":993,"tag":1034,"props":7158,"children":7159},{"style":1577},[7160],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7162,"children":7163},{"style":1207},[7164],{"type":998,"value":6420},{"type":993,"tag":1034,"props":7166,"children":7167},{"style":1201},[7168],{"type":998,"value":1606},{"type":993,"tag":1034,"props":7170,"children":7171},{"class":1036,"line":173},[7172],{"type":993,"tag":1034,"props":7173,"children":7174},{"style":1040},[7175],{"type":998,"value":7176},"    # Save requirements list to file\n",{"type":993,"tag":1034,"props":7178,"children":7179},{"class":1036,"line":182},[7180,7185],{"type":993,"tag":1034,"props":7181,"children":7182},{"style":1577},[7183],{"type":998,"value":7184},"    try",{"type":993,"tag":1034,"props":7186,"children":7187},{"style":1201},[7188],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7190,"children":7191},{"class":1036,"line":191},[7192,7197,7202,7207,7212,7217,7222,7228],{"type":993,"tag":1034,"props":7193,"children":7194},{"style":1577},[7195],{"type":998,"value":7196},"        with",{"type":993,"tag":1034,"props":7198,"children":7199},{"style":1195},[7200],{"type":998,"value":7201}," open",{"type":993,"tag":1034,"props":7203,"children":7204},{"style":1201},[7205],{"type":998,"value":7206},"(filename, ",{"type":993,"tag":1034,"props":7208,"children":7209},{"style":1207},[7210],{"type":998,"value":7211},"'w'",{"type":993,"tag":1034,"props":7213,"children":7214},{"style":1201},[7215],{"type":998,"value":7216},") ",{"type":993,"tag":1034,"props":7218,"children":7219},{"style":1577},[7220],{"type":998,"value":7221},"as",{"type":993,"tag":1034,"props":7223,"children":7225},{"style":7224},"--shiki-default:#E36209;--shiki-app-dark-mode:#FFAB70",[7226],{"type":998,"value":7227}," file",{"type":993,"tag":1034,"props":7229,"children":7230},{"style":1201},[7231],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7233,"children":7234},{"class":1036,"line":201},[7235],{"type":993,"tag":1034,"props":7236,"children":7237},{"style":1040},[7238],{"type":998,"value":7239},"            # Each package on a new line\n",{"type":993,"tag":1034,"props":7241,"children":7242},{"class":1036,"line":210},[7243,7248,7252,7256],{"type":993,"tag":1034,"props":7244,"children":7245},{"style":1577},[7246],{"type":998,"value":7247},"            for",{"type":993,"tag":1034,"props":7249,"children":7250},{"style":1201},[7251],{"type":998,"value":1976},{"type":993,"tag":1034,"props":7253,"children":7254},{"style":1577},[7255],{"type":998,"value":1981},{"type":993,"tag":1034,"props":7257,"children":7258},{"style":1201},[7259],{"type":998,"value":7260}," requirements:\n",{"type":993,"tag":1034,"props":7262,"children":7263},{"class":1036,"line":219},[7264,7269,7274,7279,7284,7288,7293],{"type":993,"tag":1034,"props":7265,"children":7266},{"style":7224},[7267],{"type":998,"value":7268},"                file",{"type":993,"tag":1034,"props":7270,"children":7271},{"style":1201},[7272],{"type":998,"value":7273},".write(package ",{"type":993,"tag":1034,"props":7275,"children":7276},{"style":1577},[7277],{"type":998,"value":7278},"+",{"type":993,"tag":1034,"props":7280,"children":7281},{"style":1207},[7282],{"type":998,"value":7283}," '",{"type":993,"tag":1034,"props":7285,"children":7286},{"style":1195},[7287],{"type":998,"value":2878},{"type":993,"tag":1034,"props":7289,"children":7290},{"style":1207},[7291],{"type":998,"value":7292},"'",{"type":993,"tag":1034,"props":7294,"children":7295},{"style":1201},[7296],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7298,"children":7299},{"class":1036,"line":228},[7300,7304,7308,7312,7317,7321,7326,7330,7335,7339,7344,7348,7352],{"type":993,"tag":1034,"props":7301,"children":7302},{"style":1195},[7303],{"type":998,"value":2011},{"type":993,"tag":1034,"props":7305,"children":7306},{"style":1201},[7307],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7309,"children":7310},{"style":1577},[7311],{"type":998,"value":2020},{"type":993,"tag":1034,"props":7313,"children":7314},{"style":1207},[7315],{"type":998,"value":7316},"\"Successfully saved ",{"type":993,"tag":1034,"props":7318,"children":7319},{"style":1195},[7320],{"type":998,"value":6842},{"type":993,"tag":1034,"props":7322,"children":7323},{"style":1201},[7324],{"type":998,"value":7325},"(requirements)",{"type":993,"tag":1034,"props":7327,"children":7328},{"style":1195},[7329],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7331,"children":7332},{"style":1207},[7333],{"type":998,"value":7334}," packages to ",{"type":993,"tag":1034,"props":7336,"children":7337},{"style":1195},[7338],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7340,"children":7341},{"style":1201},[7342],{"type":998,"value":7343},"filename",{"type":993,"tag":1034,"props":7345,"children":7346},{"style":1195},[7347],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7349,"children":7350},{"style":1207},[7351],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7353,"children":7354},{"style":1201},[7355],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7357,"children":7358},{"class":1036,"line":238},[7359,7364,7369,7374],{"type":993,"tag":1034,"props":7360,"children":7361},{"style":1577},[7362],{"type":998,"value":7363},"    except",{"type":993,"tag":1034,"props":7365,"children":7366},{"style":1195},[7367],{"type":998,"value":7368}," Exception",{"type":993,"tag":1034,"props":7370,"children":7371},{"style":1577},[7372],{"type":998,"value":7373}," as",{"type":993,"tag":1034,"props":7375,"children":7376},{"style":1201},[7377],{"type":998,"value":7378}," e:\n",{"type":993,"tag":1034,"props":7380,"children":7381},{"class":1036,"line":247},[7382,7386,7390,7394,7399,7403,7408,7412,7416],{"type":993,"tag":1034,"props":7383,"children":7384},{"style":1195},[7385],{"type":998,"value":2011},{"type":993,"tag":1034,"props":7387,"children":7388},{"style":1201},[7389],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7391,"children":7392},{"style":1577},[7393],{"type":998,"value":2020},{"type":993,"tag":1034,"props":7395,"children":7396},{"style":1207},[7397],{"type":998,"value":7398},"\"Error saving requirements: ",{"type":993,"tag":1034,"props":7400,"children":7401},{"style":1195},[7402],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7404,"children":7405},{"style":1201},[7406],{"type":998,"value":7407},"e",{"type":993,"tag":1034,"props":7409,"children":7410},{"style":1195},[7411],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7413,"children":7414},{"style":1207},[7415],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7417,"children":7418},{"style":1201},[7419],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7421,"children":7422},{"class":1036,"line":256},[7423],{"type":993,"tag":1034,"props":7424,"children":7425},{"emptyLinePlaceholder":13},[7426],{"type":998,"value":1051},{"type":993,"tag":1034,"props":7428,"children":7429},{"class":1036,"line":265},[7430,7434,7438,7442,7446,7450],{"type":993,"tag":1034,"props":7431,"children":7432},{"style":1577},[7433],{"type":998,"value":1580},{"type":993,"tag":1034,"props":7435,"children":7436},{"style":1583},[7437],{"type":998,"value":6482},{"type":993,"tag":1034,"props":7439,"children":7440},{"style":1201},[7441],{"type":998,"value":6487},{"type":993,"tag":1034,"props":7443,"children":7444},{"style":1577},[7445],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7447,"children":7448},{"style":1207},[7449],{"type":998,"value":6420},{"type":993,"tag":1034,"props":7451,"children":7452},{"style":1201},[7453],{"type":998,"value":1606},{"type":993,"tag":1034,"props":7455,"children":7456},{"class":1036,"line":274},[7457],{"type":993,"tag":1034,"props":7458,"children":7459},{"style":1040},[7460],{"type":998,"value":7461},"    # Load requirements from file\n",{"type":993,"tag":1034,"props":7463,"children":7464},{"class":1036,"line":284},[7465,7469],{"type":993,"tag":1034,"props":7466,"children":7467},{"style":1577},[7468],{"type":998,"value":7184},{"type":993,"tag":1034,"props":7470,"children":7471},{"style":1201},[7472],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7474,"children":7475},{"class":1036,"line":293},[7476,7480,7484,7488,7493,7497,7501,7505],{"type":993,"tag":1034,"props":7477,"children":7478},{"style":1577},[7479],{"type":998,"value":7196},{"type":993,"tag":1034,"props":7481,"children":7482},{"style":1195},[7483],{"type":998,"value":7201},{"type":993,"tag":1034,"props":7485,"children":7486},{"style":1201},[7487],{"type":998,"value":7206},{"type":993,"tag":1034,"props":7489,"children":7490},{"style":1207},[7491],{"type":998,"value":7492},"'r'",{"type":993,"tag":1034,"props":7494,"children":7495},{"style":1201},[7496],{"type":998,"value":7216},{"type":993,"tag":1034,"props":7498,"children":7499},{"style":1577},[7500],{"type":998,"value":7221},{"type":993,"tag":1034,"props":7502,"children":7503},{"style":7224},[7504],{"type":998,"value":7227},{"type":993,"tag":1034,"props":7506,"children":7507},{"style":1201},[7508],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7510,"children":7511},{"class":1036,"line":302},[7512,7517,7521],{"type":993,"tag":1034,"props":7513,"children":7514},{"style":1201},[7515],{"type":998,"value":7516},"            requirements ",{"type":993,"tag":1034,"props":7518,"children":7519},{"style":1577},[7520],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7522,"children":7523},{"style":1201},[7524],{"type":998,"value":6924},{"type":993,"tag":1034,"props":7526,"children":7527},{"class":1036,"line":311},[7528,7532,7537,7541,7545],{"type":993,"tag":1034,"props":7529,"children":7530},{"style":1577},[7531],{"type":998,"value":7247},{"type":993,"tag":1034,"props":7533,"children":7534},{"style":1201},[7535],{"type":998,"value":7536}," line ",{"type":993,"tag":1034,"props":7538,"children":7539},{"style":1577},[7540],{"type":998,"value":1981},{"type":993,"tag":1034,"props":7542,"children":7543},{"style":7224},[7544],{"type":998,"value":7227},{"type":993,"tag":1034,"props":7546,"children":7547},{"style":1201},[7548],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7550,"children":7551},{"class":1036,"line":320},[7552,7557,7561],{"type":993,"tag":1034,"props":7553,"children":7554},{"style":1201},[7555],{"type":998,"value":7556},"                package ",{"type":993,"tag":1034,"props":7558,"children":7559},{"style":1577},[7560],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7562,"children":7563},{"style":1201},[7564],{"type":998,"value":7565}," line.strip()\n",{"type":993,"tag":1034,"props":7567,"children":7568},{"class":1036,"line":329},[7569,7574,7579],{"type":993,"tag":1034,"props":7570,"children":7571},{"style":1577},[7572],{"type":998,"value":7573},"                if",{"type":993,"tag":1034,"props":7575,"children":7576},{"style":1201},[7577],{"type":998,"value":7578}," package:  ",{"type":993,"tag":1034,"props":7580,"children":7581},{"style":1040},[7582],{"type":998,"value":7583},"# Skip empty lines\n",{"type":993,"tag":1034,"props":7585,"children":7586},{"class":1036,"line":338},[7587],{"type":993,"tag":1034,"props":7588,"children":7589},{"style":1201},[7590],{"type":998,"value":7591},"                    requirements.append(package)\n",{"type":993,"tag":1034,"props":7593,"children":7594},{"class":1036,"line":347},[7595,7599],{"type":993,"tag":1034,"props":7596,"children":7597},{"style":1577},[7598],{"type":998,"value":2294},{"type":993,"tag":1034,"props":7600,"children":7601},{"style":1201},[7602],{"type":998,"value":7603}," requirements\n",{"type":993,"tag":1034,"props":7605,"children":7606},{"class":1036,"line":356},[7607,7611,7616],{"type":993,"tag":1034,"props":7608,"children":7609},{"style":1577},[7610],{"type":998,"value":7363},{"type":993,"tag":1034,"props":7612,"children":7613},{"style":1195},[7614],{"type":998,"value":7615}," FileNotFoundError",{"type":993,"tag":1034,"props":7617,"children":7618},{"style":1201},[7619],{"type":998,"value":2312},{"type":993,"tag":1034,"props":7621,"children":7622},{"class":1036,"line":365},[7623,7627,7631,7635,7640,7644,7648,7652,7657],{"type":993,"tag":1034,"props":7624,"children":7625},{"style":1195},[7626],{"type":998,"value":2011},{"type":993,"tag":1034,"props":7628,"children":7629},{"style":1201},[7630],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7632,"children":7633},{"style":1577},[7634],{"type":998,"value":2020},{"type":993,"tag":1034,"props":7636,"children":7637},{"style":1207},[7638],{"type":998,"value":7639},"\"File ",{"type":993,"tag":1034,"props":7641,"children":7642},{"style":1195},[7643],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7645,"children":7646},{"style":1201},[7647],{"type":998,"value":7343},{"type":993,"tag":1034,"props":7649,"children":7650},{"style":1195},[7651],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7653,"children":7654},{"style":1207},[7655],{"type":998,"value":7656}," not found. Starting with empty requirements.\"",{"type":993,"tag":1034,"props":7658,"children":7659},{"style":1201},[7660],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7662,"children":7663},{"class":1036,"line":374},[7664,7668],{"type":993,"tag":1034,"props":7665,"children":7666},{"style":1577},[7667],{"type":998,"value":2294},{"type":993,"tag":1034,"props":7669,"children":7670},{"style":1201},[7671],{"type":998,"value":6924},{"type":993,"tag":1034,"props":7673,"children":7674},{"class":1036,"line":384},[7675],{"type":993,"tag":1034,"props":7676,"children":7677},{"emptyLinePlaceholder":13},[7678],{"type":998,"value":1051},{"type":993,"tag":1034,"props":7680,"children":7681},{"class":1036,"line":393},[7682,7686,7690],{"type":993,"tag":1034,"props":7683,"children":7684},{"style":1577},[7685],{"type":998,"value":1580},{"type":993,"tag":1034,"props":7687,"children":7688},{"style":1583},[7689],{"type":998,"value":6557},{"type":993,"tag":1034,"props":7691,"children":7692},{"style":1201},[7693],{"type":998,"value":6562},{"type":993,"tag":1034,"props":7695,"children":7696},{"class":1036,"line":402},[7697],{"type":993,"tag":1034,"props":7698,"children":7699},{"style":1040},[7700],{"type":998,"value":7701},"    # Print all requirements in readable format\n",{"type":993,"tag":1034,"props":7703,"children":7704},{"class":1036,"line":411},[7705,7709,7714],{"type":993,"tag":1034,"props":7706,"children":7707},{"style":1577},[7708],{"type":998,"value":1971},{"type":993,"tag":1034,"props":7710,"children":7711},{"style":1577},[7712],{"type":998,"value":7713}," not",{"type":993,"tag":1034,"props":7715,"children":7716},{"style":1201},[7717],{"type":998,"value":7260},{"type":993,"tag":1034,"props":7719,"children":7720},{"class":1036,"line":420},[7721,7725,7729,7734],{"type":993,"tag":1034,"props":7722,"children":7723},{"style":1195},[7724],{"type":998,"value":2011},{"type":993,"tag":1034,"props":7726,"children":7727},{"style":1201},[7728],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7730,"children":7731},{"style":1207},[7732],{"type":998,"value":7733},"\"No packages in requirements.\"",{"type":993,"tag":1034,"props":7735,"children":7736},{"style":1201},[7737],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7739,"children":7740},{"class":1036,"line":429},[7741],{"type":993,"tag":1034,"props":7742,"children":7743},{"style":1577},[7744],{"type":998,"value":7745},"        return\n",{"type":993,"tag":1034,"props":7747,"children":7748},{"class":1036,"line":438},[7749],{"type":993,"tag":1034,"props":7750,"children":7751},{"style":1201},[7752],{"type":998,"value":1622},{"type":993,"tag":1034,"props":7754,"children":7755},{"class":1036,"line":447},[7756,7760,7764,7768,7772,7777],{"type":993,"tag":1034,"props":7757,"children":7758},{"style":1195},[7759],{"type":998,"value":2478},{"type":993,"tag":1034,"props":7761,"children":7762},{"style":1201},[7763],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7765,"children":7766},{"style":1207},[7767],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7769,"children":7770},{"style":1195},[7771],{"type":998,"value":2878},{"type":993,"tag":1034,"props":7773,"children":7774},{"style":1207},[7775],{"type":998,"value":7776},"Project Requirements:\"",{"type":993,"tag":1034,"props":7778,"children":7779},{"style":1201},[7780],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7782,"children":7783},{"class":1036,"line":457},[7784,7788,7792,7796,7800,7805],{"type":993,"tag":1034,"props":7785,"children":7786},{"style":1195},[7787],{"type":998,"value":2478},{"type":993,"tag":1034,"props":7789,"children":7790},{"style":1201},[7791],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7793,"children":7794},{"style":1207},[7795],{"type":998,"value":2745},{"type":993,"tag":1034,"props":7797,"children":7798},{"style":1577},[7799],{"type":998,"value":2750},{"type":993,"tag":1034,"props":7801,"children":7802},{"style":1195},[7803],{"type":998,"value":7804}," 25",{"type":993,"tag":1034,"props":7806,"children":7807},{"style":1201},[7808],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7810,"children":7811},{"class":1036,"line":466},[7812,7816,7821,7825,7830,7835,7840],{"type":993,"tag":1034,"props":7813,"children":7814},{"style":1577},[7815],{"type":998,"value":2774},{"type":993,"tag":1034,"props":7817,"children":7818},{"style":1201},[7819],{"type":998,"value":7820}," i, package ",{"type":993,"tag":1034,"props":7822,"children":7823},{"style":1577},[7824],{"type":998,"value":1981},{"type":993,"tag":1034,"props":7826,"children":7827},{"style":1195},[7828],{"type":998,"value":7829}," enumerate",{"type":993,"tag":1034,"props":7831,"children":7832},{"style":1201},[7833],{"type":998,"value":7834},"(requirements, ",{"type":993,"tag":1034,"props":7836,"children":7837},{"style":1195},[7838],{"type":998,"value":7839},"1",{"type":993,"tag":1034,"props":7841,"children":7842},{"style":1201},[7843],{"type":998,"value":1606},{"type":993,"tag":1034,"props":7845,"children":7846},{"class":1036,"line":475},[7847,7851,7855,7859,7863,7867,7872,7876,7881,7885,7889,7893,7897],{"type":993,"tag":1034,"props":7848,"children":7849},{"style":1195},[7850],{"type":998,"value":2011},{"type":993,"tag":1034,"props":7852,"children":7853},{"style":1201},[7854],{"type":998,"value":1204},{"type":993,"tag":1034,"props":7856,"children":7857},{"style":1577},[7858],{"type":998,"value":2020},{"type":993,"tag":1034,"props":7860,"children":7861},{"style":1207},[7862],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7864,"children":7865},{"style":1195},[7866],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7868,"children":7869},{"style":1201},[7870],{"type":998,"value":7871},"i",{"type":993,"tag":1034,"props":7873,"children":7874},{"style":1195},[7875],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7877,"children":7878},{"style":1207},[7879],{"type":998,"value":7880},". ",{"type":993,"tag":1034,"props":7882,"children":7883},{"style":1195},[7884],{"type":998,"value":2030},{"type":993,"tag":1034,"props":7886,"children":7887},{"style":1201},[7888],{"type":998,"value":2035},{"type":993,"tag":1034,"props":7890,"children":7891},{"style":1195},[7892],{"type":998,"value":2040},{"type":993,"tag":1034,"props":7894,"children":7895},{"style":1207},[7896],{"type":998,"value":2097},{"type":993,"tag":1034,"props":7898,"children":7899},{"style":1201},[7900],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7902,"children":7903},{"class":1036,"line":484},[7904],{"type":993,"tag":1034,"props":7905,"children":7906},{"emptyLinePlaceholder":13},[7907],{"type":998,"value":1051},{"type":993,"tag":1034,"props":7909,"children":7910},{"class":1036,"line":493},[7911],{"type":993,"tag":1034,"props":7912,"children":7913},{"style":1040},[7914],{"type":998,"value":7915},"# Test your functions\n",{"type":993,"tag":1034,"props":7917,"children":7918},{"class":1036,"line":502},[7919,7923,7927],{"type":993,"tag":1034,"props":7920,"children":7921},{"style":1201},[7922],{"type":998,"value":6617},{"type":993,"tag":1034,"props":7924,"children":7925},{"style":1577},[7926],{"type":998,"value":1596},{"type":993,"tag":1034,"props":7928,"children":7929},{"style":1201},[7930],{"type":998,"value":6626},{"type":993,"tag":1034,"props":7932,"children":7933},{"class":1036,"line":511},[7934],{"type":993,"tag":1034,"props":7935,"children":7936},{"emptyLinePlaceholder":13},[7937],{"type":998,"value":1051},{"type":993,"tag":1034,"props":7939,"children":7940},{"class":1036,"line":520},[7941],{"type":993,"tag":1034,"props":7942,"children":7943},{"style":1040},[7944],{"type":998,"value":6641},{"type":993,"tag":1034,"props":7946,"children":7947},{"class":1036,"line":530},[7948,7952,7956,7960,7964],{"type":993,"tag":1034,"props":7949,"children":7950},{"style":1201},[7951],{"type":998,"value":6649},{"type":993,"tag":1034,"props":7953,"children":7954},{"style":1207},[7955],{"type":998,"value":2402},{"type":993,"tag":1034,"props":7957,"children":7958},{"style":1201},[7959],{"type":998,"value":1698},{"type":993,"tag":1034,"props":7961,"children":7962},{"style":1207},[7963],{"type":998,"value":1670},{"type":993,"tag":1034,"props":7965,"children":7966},{"style":1201},[7967],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7969,"children":7970},{"class":1036,"line":539},[7971,7975,7979,7983,7987],{"type":993,"tag":1034,"props":7972,"children":7973},{"style":1201},[7974],{"type":998,"value":6649},{"type":993,"tag":1034,"props":7976,"children":7977},{"style":1207},[7978],{"type":998,"value":2411},{"type":993,"tag":1034,"props":7980,"children":7981},{"style":1201},[7982],{"type":998,"value":1698},{"type":993,"tag":1034,"props":7984,"children":7985},{"style":1207},[7986],{"type":998,"value":1779},{"type":993,"tag":1034,"props":7988,"children":7989},{"style":1201},[7990],{"type":998,"value":1215},{"type":993,"tag":1034,"props":7992,"children":7993},{"class":1036,"line":548},[7994,7998,8002,8006,8010],{"type":993,"tag":1034,"props":7995,"children":7996},{"style":1201},[7997],{"type":998,"value":6649},{"type":993,"tag":1034,"props":7999,"children":8000},{"style":1207},[8001],{"type":998,"value":6700},{"type":993,"tag":1034,"props":8003,"children":8004},{"style":1201},[8005],{"type":998,"value":1698},{"type":993,"tag":1034,"props":8007,"children":8008},{"style":1207},[8009],{"type":998,"value":6709},{"type":993,"tag":1034,"props":8011,"children":8012},{"style":1201},[8013],{"type":998,"value":1215},{"type":993,"tag":1034,"props":8015,"children":8016},{"class":1036,"line":557},[8017,8021,8025,8029],{"type":993,"tag":1034,"props":8018,"children":8019},{"style":1201},[8020],{"type":998,"value":6649},{"type":993,"tag":1034,"props":8022,"children":8023},{"style":1207},[8024],{"type":998,"value":1902},{"type":993,"tag":1034,"props":8026,"children":8027},{"style":1201},[8028],{"type":998,"value":6729},{"type":993,"tag":1034,"props":8030,"children":8031},{"style":1040},[8032],{"type":998,"value":6734},{"type":993,"tag":1034,"props":8034,"children":8035},{"class":1036,"line":566},[8036],{"type":993,"tag":1034,"props":8037,"children":8038},{"emptyLinePlaceholder":13},[8039],{"type":998,"value":1051},{"type":993,"tag":1034,"props":8041,"children":8042},{"class":1036,"line":575},[8043],{"type":993,"tag":1034,"props":8044,"children":8045},{"style":1040},[8046],{"type":998,"value":6749},{"type":993,"tag":1034,"props":8048,"children":8049},{"class":1036,"line":584},[8050],{"type":993,"tag":1034,"props":8051,"children":8052},{"style":1201},[8053],{"type":998,"value":6757},{"type":993,"tag":1034,"props":8055,"children":8056},{"class":1036,"line":593},[8057],{"type":993,"tag":1034,"props":8058,"children":8059},{"style":1201},[8060],{"type":998,"value":6765},{"type":993,"tag":1034,"props":8062,"children":8063},{"class":1036,"line":602},[8064,8068,8072,8076],{"type":993,"tag":1034,"props":8065,"children":8066},{"style":1195},[8067],{"type":998,"value":1198},{"type":993,"tag":1034,"props":8069,"children":8070},{"style":1201},[8071],{"type":998,"value":1204},{"type":993,"tag":1034,"props":8073,"children":8074},{"style":1207},[8075],{"type":998,"value":6781},{"type":993,"tag":1034,"props":8077,"children":8078},{"style":1201},[8079],{"type":998,"value":1215},{"type":993,"tag":1034,"props":8081,"children":8082},{"class":1036,"line":611},[8083],{"type":993,"tag":1034,"props":8084,"children":8085},{"emptyLinePlaceholder":13},[8086],{"type":998,"value":1051},{"type":993,"tag":1034,"props":8088,"children":8089},{"class":1036,"line":621},[8090],{"type":993,"tag":1034,"props":8091,"children":8092},{"style":1040},[8093],{"type":998,"value":6800},{"type":993,"tag":1034,"props":8095,"children":8096},{"class":1036,"line":630},[8097,8101,8105],{"type":993,"tag":1034,"props":8098,"children":8099},{"style":1201},[8100],{"type":998,"value":6808},{"type":993,"tag":1034,"props":8102,"children":8103},{"style":1577},[8104],{"type":998,"value":1596},{"type":993,"tag":1034,"props":8106,"children":8107},{"style":1201},[8108],{"type":998,"value":6817},{"type":993,"tag":1034,"props":8110,"children":8111},{"class":1036,"line":639},[8112,8116,8120,8124,8128,8132,8136,8140,8144],{"type":993,"tag":1034,"props":8113,"children":8114},{"style":1195},[8115],{"type":998,"value":1198},{"type":993,"tag":1034,"props":8117,"children":8118},{"style":1201},[8119],{"type":998,"value":1204},{"type":993,"tag":1034,"props":8121,"children":8122},{"style":1577},[8123],{"type":998,"value":2020},{"type":993,"tag":1034,"props":8125,"children":8126},{"style":1207},[8127],{"type":998,"value":6837},{"type":993,"tag":1034,"props":8129,"children":8130},{"style":1195},[8131],{"type":998,"value":6842},{"type":993,"tag":1034,"props":8133,"children":8134},{"style":1201},[8135],{"type":998,"value":6847},{"type":993,"tag":1034,"props":8137,"children":8138},{"style":1195},[8139],{"type":998,"value":2040},{"type":993,"tag":1034,"props":8141,"children":8142},{"style":1207},[8143],{"type":998,"value":6856},{"type":993,"tag":1034,"props":8145,"children":8146},{"style":1201},[8147],{"type":998,"value":1215},{"type":993,"tag":1034,"props":8149,"children":8150},{"class":1036,"line":648},[8151],{"type":993,"tag":1034,"props":8152,"children":8153},{"style":1201},[8154],{"type":998,"value":8155},"display_requirements(loaded_requirements)\n",{"type":993,"tag":1001,"props":8157,"children":8158},{},[8159],{"type":993,"tag":1279,"props":8160,"children":8161},{},[8162],{"type":998,"value":8163},"Key Learning Points:",{"type":993,"tag":1285,"props":8165,"children":8166},{},[8167,8179,8190,8201,8212],{"type":993,"tag":1289,"props":8168,"children":8169},{},[8170,8172,8177],{"type":998,"value":8171},"📌 ",{"type":993,"tag":1279,"props":8173,"children":8174},{},[8175],{"type":998,"value":8176},"Requirements format",{"type":998,"value":8178},": Use \"package==version\" for specific versions, \"package\" for latest",{"type":993,"tag":1289,"props":8180,"children":8181},{},[8182,8183,8188],{"type":998,"value":8171},{"type":993,"tag":1279,"props":8184,"children":8185},{},[8186],{"type":998,"value":8187},"File operations",{"type":998,"value":8189},": Write each package on a new line in requirements.txt",{"type":993,"tag":1289,"props":8191,"children":8192},{},[8193,8194,8199],{"type":998,"value":8171},{"type":993,"tag":1279,"props":8195,"children":8196},{},[8197],{"type":998,"value":8198},"Version pinning",{"type":998,"value":8200},": Specify exact versions for reproducible environments",{"type":993,"tag":1289,"props":8202,"children":8203},{},[8204,8205,8210],{"type":998,"value":8171},{"type":993,"tag":1279,"props":8206,"children":8207},{},[8208],{"type":998,"value":8209},"Error handling",{"type":998,"value":8211},": Handle file not found errors gracefully",{"type":993,"tag":1289,"props":8213,"children":8214},{},[8215,8216,8221],{"type":998,"value":8171},{"type":993,"tag":1279,"props":8217,"children":8218},{},[8219],{"type":998,"value":8220},"Package management",{"type":998,"value":8222},": Keep track of project dependencies systematically",{"type":993,"tag":1001,"props":8224,"children":8225},{},[8226,8228,8234],{"type":998,"value":8227},"Learn more about ",{"type":993,"tag":8229,"props":8230,"children":8231},"a",{"href":781},[8232],{"type":998,"value":8233},"error handling",{"type":998,"value":8235}," to build robust applications that gracefully handle package and dependency issues.",{"type":993,"tag":1257,"props":8237,"children":8239},{"id":8238},"essential-package-management-commands",[8240],{"type":998,"value":8241},"Essential Package Management Commands",{"type":993,"tag":1001,"props":8243,"children":8244},{},[8245],{"type":998,"value":8246},"Understanding core package management commands enables efficient dependency handling and environment management.",{"type":993,"tag":8248,"props":8249,"children":8250},"table",{},[8251,8280],{"type":993,"tag":8252,"props":8253,"children":8254},"thead",{},[8255],{"type":993,"tag":8256,"props":8257,"children":8258},"tr",{},[8259,8265,8270,8275],{"type":993,"tag":8260,"props":8261,"children":8262},"th",{},[8263],{"type":998,"value":8264},"Command",{"type":993,"tag":8260,"props":8266,"children":8267},{},[8268],{"type":998,"value":8269},"Purpose",{"type":993,"tag":8260,"props":8271,"children":8272},{},[8273],{"type":998,"value":8274},"Example",{"type":993,"tag":8260,"props":8276,"children":8277},{},[8278],{"type":998,"value":8279},"Description",{"type":993,"tag":8281,"props":8282,"children":8283},"tbody",{},[8284,8316,8347,8374,8401,8432,8463,8490],{"type":993,"tag":8256,"props":8285,"children":8286},{},[8287,8297,8302,8311],{"type":993,"tag":8288,"props":8289,"children":8290},"td",{},[8291],{"type":993,"tag":1007,"props":8292,"children":8294},{"className":8293},[],[8295],{"type":998,"value":8296},"pip install package",{"type":993,"tag":8288,"props":8298,"children":8299},{},[8300],{"type":998,"value":8301},"Install package",{"type":993,"tag":8288,"props":8303,"children":8304},{},[8305],{"type":993,"tag":1007,"props":8306,"children":8308},{"className":8307},[],[8309],{"type":998,"value":8310},"pip install requests",{"type":993,"tag":8288,"props":8312,"children":8313},{},[8314],{"type":998,"value":8315},"Install latest version",{"type":993,"tag":8256,"props":8317,"children":8318},{},[8319,8328,8333,8342],{"type":993,"tag":8288,"props":8320,"children":8321},{},[8322],{"type":993,"tag":1007,"props":8323,"children":8325},{"className":8324},[],[8326],{"type":998,"value":8327},"pip install package==version",{"type":993,"tag":8288,"props":8329,"children":8330},{},[8331],{"type":998,"value":8332},"Install specific version",{"type":993,"tag":8288,"props":8334,"children":8335},{},[8336],{"type":993,"tag":1007,"props":8337,"children":8339},{"className":8338},[],[8340],{"type":998,"value":8341},"pip install django==4.2.0",{"type":993,"tag":8288,"props":8343,"children":8344},{},[8345],{"type":998,"value":8346},"Exact version",{"type":993,"tag":8256,"props":8348,"children":8349},{},[8350,8359,8364,8369],{"type":993,"tag":8288,"props":8351,"children":8352},{},[8353],{"type":993,"tag":1007,"props":8354,"children":8356},{"className":8355},[],[8357],{"type":998,"value":8358},"pip install -r requirements.txt",{"type":993,"tag":8288,"props":8360,"children":8361},{},[8362],{"type":998,"value":8363},"Install from file",{"type":993,"tag":8288,"props":8365,"children":8366},{},[8367],{"type":998,"value":8368},"Install all listed packages",{"type":993,"tag":8288,"props":8370,"children":8371},{},[8372],{"type":998,"value":8373},"Batch installation",{"type":993,"tag":8256,"props":8375,"children":8376},{},[8377,8386,8391,8396],{"type":993,"tag":8288,"props":8378,"children":8379},{},[8380],{"type":993,"tag":1007,"props":8381,"children":8383},{"className":8382},[],[8384],{"type":998,"value":8385},"pip list",{"type":993,"tag":8288,"props":8387,"children":8388},{},[8389],{"type":998,"value":8390},"Show installed packages",{"type":993,"tag":8288,"props":8392,"children":8393},{},[8394],{"type":998,"value":8395},"Display all packages",{"type":993,"tag":8288,"props":8397,"children":8398},{},[8399],{"type":998,"value":8400},"Environment audit",{"type":993,"tag":8256,"props":8402,"children":8403},{},[8404,8413,8418,8427],{"type":993,"tag":8288,"props":8405,"children":8406},{},[8407],{"type":993,"tag":1007,"props":8408,"children":8410},{"className":8409},[],[8411],{"type":998,"value":8412},"pip freeze",{"type":993,"tag":8288,"props":8414,"children":8415},{},[8416],{"type":998,"value":8417},"Export requirements",{"type":993,"tag":8288,"props":8419,"children":8420},{},[8421],{"type":993,"tag":1007,"props":8422,"children":8424},{"className":8423},[],[8425],{"type":998,"value":8426},"pip freeze > requirements.txt",{"type":993,"tag":8288,"props":8428,"children":8429},{},[8430],{"type":998,"value":8431},"Create requirements",{"type":993,"tag":8256,"props":8433,"children":8434},{},[8435,8444,8449,8458],{"type":993,"tag":8288,"props":8436,"children":8437},{},[8438],{"type":993,"tag":1007,"props":8439,"children":8441},{"className":8440},[],[8442],{"type":998,"value":8443},"pip uninstall package",{"type":993,"tag":8288,"props":8445,"children":8446},{},[8447],{"type":998,"value":8448},"Remove package",{"type":993,"tag":8288,"props":8450,"children":8451},{},[8452],{"type":993,"tag":1007,"props":8453,"children":8455},{"className":8454},[],[8456],{"type":998,"value":8457},"pip uninstall requests",{"type":993,"tag":8288,"props":8459,"children":8460},{},[8461],{"type":998,"value":8462},"Clean uninstall",{"type":993,"tag":8256,"props":8464,"children":8465},{},[8466,8475,8480,8485],{"type":993,"tag":8288,"props":8467,"children":8468},{},[8469],{"type":993,"tag":1007,"props":8470,"children":8472},{"className":8471},[],[8473],{"type":998,"value":8474},"python -m venv env_name",{"type":993,"tag":8288,"props":8476,"children":8477},{},[8478],{"type":998,"value":8479},"Create virtual environment",{"type":993,"tag":8288,"props":8481,"children":8482},{},[8483],{"type":998,"value":8484},"Isolated environment",{"type":993,"tag":8288,"props":8486,"children":8487},{},[8488],{"type":998,"value":8489},"Environment creation",{"type":993,"tag":8256,"props":8491,"children":8492},{},[8493,8502,8507,8512],{"type":993,"tag":8288,"props":8494,"children":8495},{},[8496],{"type":993,"tag":1007,"props":8497,"children":8499},{"className":8498},[],[8500],{"type":998,"value":8501},"pip install -e .",{"type":993,"tag":8288,"props":8503,"children":8504},{},[8505],{"type":998,"value":8506},"Editable install",{"type":993,"tag":8288,"props":8508,"children":8509},{},[8510],{"type":998,"value":8511},"Development installation",{"type":993,"tag":8288,"props":8513,"children":8514},{},[8515],{"type":998,"value":8516},"Local development",{"type":993,"tag":1257,"props":8518,"children":8520},{"id":8519},"test-your-knowledge",[8521],{"type":998,"value":8522},"Test Your Knowledge",{"type":993,"tag":1001,"props":8524,"children":8525},{},[8526],{"type":998,"value":8527},"Test what you've learned about package management:",{"type":993,"tag":8529,"props":8530,"children":8534},"redirect-button",{"icon":8531,"label":8532,"url":8533},"pi pi-send","Take Quiz","/tutorial-quiz/python/package-management",[],{"type":993,"tag":1257,"props":8536,"children":8538},{"id":8537},"whats-next",[8539],{"type":998,"value":8540},"What's Next?",{"type":993,"tag":1001,"props":8542,"children":8543},{},[8544],{"type":998,"value":8545},"Now that you understand package management, you're ready to explore error handling. Learn how to build robust applications that gracefully handle exceptions and provide meaningful feedback when things go wrong.",{"type":993,"tag":1001,"props":8547,"children":8548},{},[8549,8551,8555],{"type":998,"value":8550},"Ready to continue? Check out our lesson on ",{"type":993,"tag":8229,"props":8552,"children":8553},{"href":781},[8554],{"type":998,"value":782},{"type":998,"value":8556},".",{"type":993,"tag":8558,"props":8559,"children":8560},"style",{},[8561],{"type":998,"value":8562},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .app-dark-mode .shiki span {color: var(--shiki-app-dark-mode);background: var(--shiki-app-dark-mode-bg);font-style: var(--shiki-app-dark-mode-font-style);font-weight: var(--shiki-app-dark-mode-font-weight);text-decoration: var(--shiki-app-dark-mode-text-decoration);}html.app-dark-mode .shiki span {color: var(--shiki-app-dark-mode);background: var(--shiki-app-dark-mode-bg);font-style: var(--shiki-app-dark-mode-font-style);font-weight: var(--shiki-app-dark-mode-font-weight);text-decoration: var(--shiki-app-dark-mode-text-decoration);}",{"title":8,"searchDepth":36,"depth":36,"links":8564},[8565,8569,8573,8577,8581,8582,8583],{"id":1259,"depth":27,"text":1262,"children":8566},[8567,8568],{"id":1545,"depth":36,"text":1548},{"id":2486,"depth":36,"text":2489},{"id":2985,"depth":27,"text":2988,"children":8570},[8571,8572],{"id":2996,"depth":36,"text":2999},{"id":3836,"depth":36,"text":3839},{"id":4208,"depth":27,"text":4211,"children":8574},[8575,8576],{"id":4214,"depth":36,"text":4217},{"id":4647,"depth":36,"text":4650},{"id":5522,"depth":27,"text":5525,"children":8578},[8579,8580],{"id":5528,"depth":36,"text":5531},{"id":6863,"depth":36,"text":6866},{"id":8238,"depth":27,"text":8241},{"id":8519,"depth":27,"text":8522},{"id":8537,"depth":27,"text":8540},1782373749155]