pythonlings 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pythonlings/__init__.py +0 -0
- pythonlings/__main__.py +4 -0
- pythonlings/app.py +84 -0
- pythonlings/cli.py +318 -0
- pythonlings/core/__init__.py +0 -0
- pythonlings/core/curriculum.py +106 -0
- pythonlings/core/docs.py +68 -0
- pythonlings/core/exercise.py +33 -0
- pythonlings/core/manifest.py +110 -0
- pythonlings/core/reset.py +43 -0
- pythonlings/core/runner.py +114 -0
- pythonlings/core/solutions.py +17 -0
- pythonlings/core/state.py +86 -0
- pythonlings/curriculum/checks/async/async1.py +4 -0
- pythonlings/curriculum/checks/async/async10.py +4 -0
- pythonlings/curriculum/checks/async/async2.py +4 -0
- pythonlings/curriculum/checks/async/async3.py +4 -0
- pythonlings/curriculum/checks/async/async4.py +4 -0
- pythonlings/curriculum/checks/async/async5.py +4 -0
- pythonlings/curriculum/checks/async/async6.py +4 -0
- pythonlings/curriculum/checks/async/async7.py +4 -0
- pythonlings/curriculum/checks/async/async8.py +2 -0
- pythonlings/curriculum/checks/async/async9.py +4 -0
- pythonlings/curriculum/checks/classes/classes1.py +3 -0
- pythonlings/curriculum/checks/classes/classes10.py +5 -0
- pythonlings/curriculum/checks/classes/classes11.py +5 -0
- pythonlings/curriculum/checks/classes/classes12.py +16 -0
- pythonlings/curriculum/checks/classes/classes2.py +3 -0
- pythonlings/curriculum/checks/classes/classes3.py +4 -0
- pythonlings/curriculum/checks/classes/classes4.py +4 -0
- pythonlings/curriculum/checks/classes/classes5.py +5 -0
- pythonlings/curriculum/checks/classes/classes6.py +4 -0
- pythonlings/curriculum/checks/classes/classes7.py +3 -0
- pythonlings/curriculum/checks/classes/classes8.py +3 -0
- pythonlings/curriculum/checks/classes/classes9.py +4 -0
- pythonlings/curriculum/checks/collections/collections1.py +4 -0
- pythonlings/curriculum/checks/collections/collections10.py +15 -0
- pythonlings/curriculum/checks/collections/collections2.py +4 -0
- pythonlings/curriculum/checks/collections/collections3.py +5 -0
- pythonlings/curriculum/checks/collections/collections4.py +4 -0
- pythonlings/curriculum/checks/collections/collections5.py +5 -0
- pythonlings/curriculum/checks/collections/collections6.py +6 -0
- pythonlings/curriculum/checks/collections/collections7.py +4 -0
- pythonlings/curriculum/checks/collections/collections8.py +5 -0
- pythonlings/curriculum/checks/collections/collections9.py +9 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions1.py +3 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions10.py +5 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions2.py +3 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions3.py +3 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions4.py +6 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions5.py +3 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions6.py +3 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions7.py +4 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions8.py +5 -0
- pythonlings/curriculum/checks/comprehensions/comprehensions9.py +3 -0
- pythonlings/curriculum/checks/conditionals/conditionals1.py +2 -0
- pythonlings/curriculum/checks/conditionals/conditionals10.py +10 -0
- pythonlings/curriculum/checks/conditionals/conditionals2.py +5 -0
- pythonlings/curriculum/checks/conditionals/conditionals3.py +9 -0
- pythonlings/curriculum/checks/conditionals/conditionals4.py +7 -0
- pythonlings/curriculum/checks/conditionals/conditionals5.py +9 -0
- pythonlings/curriculum/checks/conditionals/conditionals6.py +7 -0
- pythonlings/curriculum/checks/conditionals/conditionals7.py +7 -0
- pythonlings/curriculum/checks/conditionals/conditionals8.py +9 -0
- pythonlings/curriculum/checks/conditionals/conditionals9.py +7 -0
- pythonlings/curriculum/checks/context_managers/context_managers1.py +15 -0
- pythonlings/curriculum/checks/context_managers/context_managers2.py +10 -0
- pythonlings/curriculum/checks/context_managers/context_managers3.py +2 -0
- pythonlings/curriculum/checks/context_managers/context_managers4.py +3 -0
- pythonlings/curriculum/checks/context_managers/context_managers5.py +5 -0
- pythonlings/curriculum/checks/context_managers/context_managers6.py +4 -0
- pythonlings/curriculum/checks/context_managers/context_managers7.py +16 -0
- pythonlings/curriculum/checks/context_managers/context_managers8.py +15 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses1.py +3 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses2.py +5 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses3.py +4 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses4.py +3 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses5.py +9 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses6.py +6 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses7.py +6 -0
- pythonlings/curriculum/checks/dataclasses/dataclasses8.py +5 -0
- pythonlings/curriculum/checks/datetime/datetime1.py +4 -0
- pythonlings/curriculum/checks/datetime/datetime2.py +4 -0
- pythonlings/curriculum/checks/datetime/datetime3.py +6 -0
- pythonlings/curriculum/checks/datetime/datetime4.py +2 -0
- pythonlings/curriculum/checks/datetime/datetime5.py +2 -0
- pythonlings/curriculum/checks/datetime/datetime6.py +2 -0
- pythonlings/curriculum/checks/datetime/datetime7.py +2 -0
- pythonlings/curriculum/checks/datetime/datetime8.py +5 -0
- pythonlings/curriculum/checks/decorators/decorators1.py +8 -0
- pythonlings/curriculum/checks/decorators/decorators10.py +12 -0
- pythonlings/curriculum/checks/decorators/decorators2.py +5 -0
- pythonlings/curriculum/checks/decorators/decorators3.py +4 -0
- pythonlings/curriculum/checks/decorators/decorators4.py +7 -0
- pythonlings/curriculum/checks/decorators/decorators5.py +5 -0
- pythonlings/curriculum/checks/decorators/decorators6.py +8 -0
- pythonlings/curriculum/checks/decorators/decorators7.py +12 -0
- pythonlings/curriculum/checks/decorators/decorators8.py +20 -0
- pythonlings/curriculum/checks/decorators/decorators9.py +4 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries1.py +3 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries10.py +5 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries2.py +2 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries3.py +5 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries4.py +5 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries5.py +11 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries6.py +4 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries7.py +5 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries8.py +4 -0
- pythonlings/curriculum/checks/dictionaries/dictionaries9.py +4 -0
- pythonlings/curriculum/checks/enums/enums1.py +4 -0
- pythonlings/curriculum/checks/enums/enums2.py +3 -0
- pythonlings/curriculum/checks/enums/enums3.py +3 -0
- pythonlings/curriculum/checks/enums/enums4.py +2 -0
- pythonlings/curriculum/checks/enums/enums5.py +4 -0
- pythonlings/curriculum/checks/enums/enums6.py +3 -0
- pythonlings/curriculum/checks/exceptions/exceptions1.py +4 -0
- pythonlings/curriculum/checks/exceptions/exceptions10.py +39 -0
- pythonlings/curriculum/checks/exceptions/exceptions2.py +5 -0
- pythonlings/curriculum/checks/exceptions/exceptions3.py +8 -0
- pythonlings/curriculum/checks/exceptions/exceptions4.py +5 -0
- pythonlings/curriculum/checks/exceptions/exceptions5.py +10 -0
- pythonlings/curriculum/checks/exceptions/exceptions6.py +17 -0
- pythonlings/curriculum/checks/exceptions/exceptions7.py +15 -0
- pythonlings/curriculum/checks/exceptions/exceptions8.py +6 -0
- pythonlings/curriculum/checks/exceptions/exceptions9.py +16 -0
- pythonlings/curriculum/checks/file_io/file_io1.py +15 -0
- pythonlings/curriculum/checks/file_io/file_io10.py +16 -0
- pythonlings/curriculum/checks/file_io/file_io2.py +10 -0
- pythonlings/curriculum/checks/file_io/file_io3.py +15 -0
- pythonlings/curriculum/checks/file_io/file_io4.py +14 -0
- pythonlings/curriculum/checks/file_io/file_io5.py +15 -0
- pythonlings/curriculum/checks/file_io/file_io6.py +10 -0
- pythonlings/curriculum/checks/file_io/file_io7.py +15 -0
- pythonlings/curriculum/checks/file_io/file_io8.py +12 -0
- pythonlings/curriculum/checks/file_io/file_io9.py +10 -0
- pythonlings/curriculum/checks/functional/functional1.py +4 -0
- pythonlings/curriculum/checks/functional/functional10.py +7 -0
- pythonlings/curriculum/checks/functional/functional2.py +5 -0
- pythonlings/curriculum/checks/functional/functional3.py +3 -0
- pythonlings/curriculum/checks/functional/functional4.py +4 -0
- pythonlings/curriculum/checks/functional/functional5.py +6 -0
- pythonlings/curriculum/checks/functional/functional6.py +8 -0
- pythonlings/curriculum/checks/functional/functional7.py +8 -0
- pythonlings/curriculum/checks/functional/functional8.py +7 -0
- pythonlings/curriculum/checks/functional/functional9.py +8 -0
- pythonlings/curriculum/checks/functions/functions1.py +9 -0
- pythonlings/curriculum/checks/functions/functions10.py +12 -0
- pythonlings/curriculum/checks/functions/functions2.py +4 -0
- pythonlings/curriculum/checks/functions/functions3.py +6 -0
- pythonlings/curriculum/checks/functions/functions4.py +6 -0
- pythonlings/curriculum/checks/functions/functions5.py +6 -0
- pythonlings/curriculum/checks/functions/functions6.py +8 -0
- pythonlings/curriculum/checks/functions/functions7.py +7 -0
- pythonlings/curriculum/checks/functions/functions8.py +6 -0
- pythonlings/curriculum/checks/functions/functions9.py +7 -0
- pythonlings/curriculum/checks/generators/generators1.py +4 -0
- pythonlings/curriculum/checks/generators/generators10.py +7 -0
- pythonlings/curriculum/checks/generators/generators2.py +3 -0
- pythonlings/curriculum/checks/generators/generators3.py +4 -0
- pythonlings/curriculum/checks/generators/generators4.py +9 -0
- pythonlings/curriculum/checks/generators/generators5.py +10 -0
- pythonlings/curriculum/checks/generators/generators6.py +8 -0
- pythonlings/curriculum/checks/generators/generators7.py +11 -0
- pythonlings/curriculum/checks/generators/generators8.py +8 -0
- pythonlings/curriculum/checks/generators/generators9.py +13 -0
- pythonlings/curriculum/checks/itertools/itertools1.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools2.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools3.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools4.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools5.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools6.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools7.py +2 -0
- pythonlings/curriculum/checks/itertools/itertools8.py +3 -0
- pythonlings/curriculum/checks/json/json1.py +3 -0
- pythonlings/curriculum/checks/json/json2.py +2 -0
- pythonlings/curriculum/checks/json/json3.py +2 -0
- pythonlings/curriculum/checks/json/json4.py +2 -0
- pythonlings/curriculum/checks/json/json5.py +2 -0
- pythonlings/curriculum/checks/json/json6.py +2 -0
- pythonlings/curriculum/checks/json/json7.py +3 -0
- pythonlings/curriculum/checks/json/json8.py +4 -0
- pythonlings/curriculum/checks/lists/lists1.py +2 -0
- pythonlings/curriculum/checks/lists/lists10.py +5 -0
- pythonlings/curriculum/checks/lists/lists2.py +3 -0
- pythonlings/curriculum/checks/lists/lists3.py +4 -0
- pythonlings/curriculum/checks/lists/lists4.py +3 -0
- pythonlings/curriculum/checks/lists/lists5.py +4 -0
- pythonlings/curriculum/checks/lists/lists6.py +3 -0
- pythonlings/curriculum/checks/lists/lists7.py +4 -0
- pythonlings/curriculum/checks/lists/lists8.py +7 -0
- pythonlings/curriculum/checks/lists/lists9.py +4 -0
- pythonlings/curriculum/checks/loops/loops1.py +2 -0
- pythonlings/curriculum/checks/loops/loops10.py +6 -0
- pythonlings/curriculum/checks/loops/loops2.py +2 -0
- pythonlings/curriculum/checks/loops/loops3.py +2 -0
- pythonlings/curriculum/checks/loops/loops4.py +3 -0
- pythonlings/curriculum/checks/loops/loops5.py +2 -0
- pythonlings/curriculum/checks/loops/loops6.py +2 -0
- pythonlings/curriculum/checks/loops/loops7.py +2 -0
- pythonlings/curriculum/checks/loops/loops8.py +2 -0
- pythonlings/curriculum/checks/loops/loops9.py +3 -0
- pythonlings/curriculum/checks/modules/modules1.py +2 -0
- pythonlings/curriculum/checks/modules/modules2.py +2 -0
- pythonlings/curriculum/checks/modules/modules3.py +5 -0
- pythonlings/curriculum/checks/modules/modules4.py +8 -0
- pythonlings/curriculum/checks/modules/modules5.py +7 -0
- pythonlings/curriculum/checks/modules/modules6.py +4 -0
- pythonlings/curriculum/checks/modules/modules7.py +4 -0
- pythonlings/curriculum/checks/modules/modules8.py +15 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced1.py +4 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced10.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced11.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced12.py +4 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced2.py +4 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced3.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced4.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced5.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced6.py +2 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced7.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced8.py +3 -0
- pythonlings/curriculum/checks/oop_advanced/oop_advanced9.py +4 -0
- pythonlings/curriculum/checks/pathlib/pathlib1.py +5 -0
- pythonlings/curriculum/checks/pathlib/pathlib2.py +4 -0
- pythonlings/curriculum/checks/pathlib/pathlib3.py +6 -0
- pythonlings/curriculum/checks/pathlib/pathlib4.py +4 -0
- pythonlings/curriculum/checks/pathlib/pathlib5.py +4 -0
- pythonlings/curriculum/checks/pathlib/pathlib6.py +5 -0
- pythonlings/curriculum/checks/recursion/recursion1.py +5 -0
- pythonlings/curriculum/checks/recursion/recursion2.py +5 -0
- pythonlings/curriculum/checks/recursion/recursion3.py +6 -0
- pythonlings/curriculum/checks/recursion/recursion4.py +6 -0
- pythonlings/curriculum/checks/recursion/recursion5.py +7 -0
- pythonlings/curriculum/checks/recursion/recursion6.py +7 -0
- pythonlings/curriculum/checks/recursion/recursion7.py +7 -0
- pythonlings/curriculum/checks/recursion/recursion8.py +15 -0
- pythonlings/curriculum/checks/regex/regex1.py +3 -0
- pythonlings/curriculum/checks/regex/regex10.py +17 -0
- pythonlings/curriculum/checks/regex/regex2.py +3 -0
- pythonlings/curriculum/checks/regex/regex3.py +2 -0
- pythonlings/curriculum/checks/regex/regex4.py +4 -0
- pythonlings/curriculum/checks/regex/regex5.py +4 -0
- pythonlings/curriculum/checks/regex/regex6.py +6 -0
- pythonlings/curriculum/checks/regex/regex7.py +5 -0
- pythonlings/curriculum/checks/regex/regex8.py +6 -0
- pythonlings/curriculum/checks/regex/regex9.py +8 -0
- pythonlings/curriculum/checks/sets/sets1.py +3 -0
- pythonlings/curriculum/checks/sets/sets10.py +15 -0
- pythonlings/curriculum/checks/sets/sets2.py +5 -0
- pythonlings/curriculum/checks/sets/sets3.py +5 -0
- pythonlings/curriculum/checks/sets/sets4.py +3 -0
- pythonlings/curriculum/checks/sets/sets5.py +3 -0
- pythonlings/curriculum/checks/sets/sets6.py +3 -0
- pythonlings/curriculum/checks/sets/sets7.py +5 -0
- pythonlings/curriculum/checks/sets/sets8.py +5 -0
- pythonlings/curriculum/checks/sets/sets9.py +3 -0
- pythonlings/curriculum/checks/strings/strings1.py +3 -0
- pythonlings/curriculum/checks/strings/strings10.py +5 -0
- pythonlings/curriculum/checks/strings/strings2.py +3 -0
- pythonlings/curriculum/checks/strings/strings3.py +3 -0
- pythonlings/curriculum/checks/strings/strings4.py +2 -0
- pythonlings/curriculum/checks/strings/strings5.py +4 -0
- pythonlings/curriculum/checks/strings/strings6.py +3 -0
- pythonlings/curriculum/checks/strings/strings7.py +3 -0
- pythonlings/curriculum/checks/strings/strings8.py +3 -0
- pythonlings/curriculum/checks/strings/strings9.py +3 -0
- pythonlings/curriculum/checks/testing/testing1.py +2 -0
- pythonlings/curriculum/checks/testing/testing10.py +9 -0
- pythonlings/curriculum/checks/testing/testing11.py +7 -0
- pythonlings/curriculum/checks/testing/testing12.py +19 -0
- pythonlings/curriculum/checks/testing/testing2.py +2 -0
- pythonlings/curriculum/checks/testing/testing3.py +12 -0
- pythonlings/curriculum/checks/testing/testing4.py +6 -0
- pythonlings/curriculum/checks/testing/testing5.py +6 -0
- pythonlings/curriculum/checks/testing/testing6.py +14 -0
- pythonlings/curriculum/checks/testing/testing7.py +14 -0
- pythonlings/curriculum/checks/testing/testing8.py +27 -0
- pythonlings/curriculum/checks/testing/testing9.py +14 -0
- pythonlings/curriculum/checks/tuples/tuples1.py +3 -0
- pythonlings/curriculum/checks/tuples/tuples10.py +6 -0
- pythonlings/curriculum/checks/tuples/tuples2.py +3 -0
- pythonlings/curriculum/checks/tuples/tuples3.py +4 -0
- pythonlings/curriculum/checks/tuples/tuples4.py +3 -0
- pythonlings/curriculum/checks/tuples/tuples5.py +4 -0
- pythonlings/curriculum/checks/tuples/tuples6.py +5 -0
- pythonlings/curriculum/checks/tuples/tuples7.py +3 -0
- pythonlings/curriculum/checks/tuples/tuples8.py +4 -0
- pythonlings/curriculum/checks/tuples/tuples9.py +5 -0
- pythonlings/curriculum/checks/type_hints/type_hints1.py +3 -0
- pythonlings/curriculum/checks/type_hints/type_hints2.py +5 -0
- pythonlings/curriculum/checks/type_hints/type_hints3.py +5 -0
- pythonlings/curriculum/checks/type_hints/type_hints4.py +5 -0
- pythonlings/curriculum/checks/type_hints/type_hints5.py +6 -0
- pythonlings/curriculum/checks/type_hints/type_hints6.py +7 -0
- pythonlings/curriculum/checks/type_hints/type_hints7.py +9 -0
- pythonlings/curriculum/checks/type_hints/type_hints8.py +9 -0
- pythonlings/curriculum/checks/variables/variables1.py +7 -0
- pythonlings/curriculum/checks/variables/variables10.py +4 -0
- pythonlings/curriculum/checks/variables/variables2.py +19 -0
- pythonlings/curriculum/checks/variables/variables3.py +4 -0
- pythonlings/curriculum/checks/variables/variables4.py +2 -0
- pythonlings/curriculum/checks/variables/variables5.py +2 -0
- pythonlings/curriculum/checks/variables/variables6.py +4 -0
- pythonlings/curriculum/checks/variables/variables7.py +3 -0
- pythonlings/curriculum/checks/variables/variables8.py +4 -0
- pythonlings/curriculum/checks/variables/variables9.py +3 -0
- pythonlings/curriculum/exercises/async/async1.py +7 -0
- pythonlings/curriculum/exercises/async/async10.py +14 -0
- pythonlings/curriculum/exercises/async/async2.py +10 -0
- pythonlings/curriculum/exercises/async/async3.py +10 -0
- pythonlings/curriculum/exercises/async/async4.py +15 -0
- pythonlings/curriculum/exercises/async/async5.py +13 -0
- pythonlings/curriculum/exercises/async/async6.py +14 -0
- pythonlings/curriculum/exercises/async/async7.py +13 -0
- pythonlings/curriculum/exercises/async/async8.py +11 -0
- pythonlings/curriculum/exercises/async/async9.py +13 -0
- pythonlings/curriculum/exercises/classes/classes1.py +13 -0
- pythonlings/curriculum/exercises/classes/classes10.py +22 -0
- pythonlings/curriculum/exercises/classes/classes11.py +24 -0
- pythonlings/curriculum/exercises/classes/classes12.py +33 -0
- pythonlings/curriculum/exercises/classes/classes2.py +13 -0
- pythonlings/curriculum/exercises/classes/classes3.py +13 -0
- pythonlings/curriculum/exercises/classes/classes4.py +16 -0
- pythonlings/curriculum/exercises/classes/classes5.py +18 -0
- pythonlings/curriculum/exercises/classes/classes6.py +15 -0
- pythonlings/curriculum/exercises/classes/classes7.py +18 -0
- pythonlings/curriculum/exercises/classes/classes8.py +14 -0
- pythonlings/curriculum/exercises/classes/classes9.py +18 -0
- pythonlings/curriculum/exercises/collections/collections1.py +11 -0
- pythonlings/curriculum/exercises/collections/collections10.py +37 -0
- pythonlings/curriculum/exercises/collections/collections2.py +18 -0
- pythonlings/curriculum/exercises/collections/collections3.py +17 -0
- pythonlings/curriculum/exercises/collections/collections4.py +26 -0
- pythonlings/curriculum/exercises/collections/collections5.py +14 -0
- pythonlings/curriculum/exercises/collections/collections6.py +18 -0
- pythonlings/curriculum/exercises/collections/collections7.py +20 -0
- pythonlings/curriculum/exercises/collections/collections8.py +23 -0
- pythonlings/curriculum/exercises/collections/collections9.py +21 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions1.py +10 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions10.py +15 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions2.py +12 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions3.py +12 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions4.py +14 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions5.py +12 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions6.py +12 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions7.py +12 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions8.py +15 -0
- pythonlings/curriculum/exercises/comprehensions/comprehensions9.py +13 -0
- pythonlings/curriculum/exercises/conditionals/conditionals1.py +15 -0
- pythonlings/curriculum/exercises/conditionals/conditionals10.py +18 -0
- pythonlings/curriculum/exercises/conditionals/conditionals2.py +13 -0
- pythonlings/curriculum/exercises/conditionals/conditionals3.py +18 -0
- pythonlings/curriculum/exercises/conditionals/conditionals4.py +20 -0
- pythonlings/curriculum/exercises/conditionals/conditionals5.py +17 -0
- pythonlings/curriculum/exercises/conditionals/conditionals6.py +15 -0
- pythonlings/curriculum/exercises/conditionals/conditionals7.py +18 -0
- pythonlings/curriculum/exercises/conditionals/conditionals8.py +20 -0
- pythonlings/curriculum/exercises/conditionals/conditionals9.py +12 -0
- pythonlings/curriculum/exercises/context_managers/context_managers1.py +18 -0
- pythonlings/curriculum/exercises/context_managers/context_managers2.py +19 -0
- pythonlings/curriculum/exercises/context_managers/context_managers3.py +24 -0
- pythonlings/curriculum/exercises/context_managers/context_managers4.py +30 -0
- pythonlings/curriculum/exercises/context_managers/context_managers5.py +30 -0
- pythonlings/curriculum/exercises/context_managers/context_managers6.py +26 -0
- pythonlings/curriculum/exercises/context_managers/context_managers7.py +30 -0
- pythonlings/curriculum/exercises/context_managers/context_managers8.py +45 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses1.py +14 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses2.py +23 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses3.py +21 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses4.py +25 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses5.py +25 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses6.py +21 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses7.py +27 -0
- pythonlings/curriculum/exercises/dataclasses/dataclasses8.py +30 -0
- pythonlings/curriculum/exercises/datetime/datetime1.py +8 -0
- pythonlings/curriculum/exercises/datetime/datetime2.py +9 -0
- pythonlings/curriculum/exercises/datetime/datetime3.py +9 -0
- pythonlings/curriculum/exercises/datetime/datetime4.py +9 -0
- pythonlings/curriculum/exercises/datetime/datetime5.py +10 -0
- pythonlings/curriculum/exercises/datetime/datetime6.py +10 -0
- pythonlings/curriculum/exercises/datetime/datetime7.py +10 -0
- pythonlings/curriculum/exercises/datetime/datetime8.py +11 -0
- pythonlings/curriculum/exercises/decorators/decorators1.py +19 -0
- pythonlings/curriculum/exercises/decorators/decorators10.py +32 -0
- pythonlings/curriculum/exercises/decorators/decorators2.py +22 -0
- pythonlings/curriculum/exercises/decorators/decorators3.py +18 -0
- pythonlings/curriculum/exercises/decorators/decorators4.py +24 -0
- pythonlings/curriculum/exercises/decorators/decorators5.py +25 -0
- pythonlings/curriculum/exercises/decorators/decorators6.py +19 -0
- pythonlings/curriculum/exercises/decorators/decorators7.py +25 -0
- pythonlings/curriculum/exercises/decorators/decorators8.py +25 -0
- pythonlings/curriculum/exercises/decorators/decorators9.py +26 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries1.py +6 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries10.py +17 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries2.py +9 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries3.py +16 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries4.py +15 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries5.py +15 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries6.py +18 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries7.py +17 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries8.py +17 -0
- pythonlings/curriculum/exercises/dictionaries/dictionaries9.py +25 -0
- pythonlings/curriculum/exercises/enums/enums1.py +12 -0
- pythonlings/curriculum/exercises/enums/enums2.py +11 -0
- pythonlings/curriculum/exercises/enums/enums3.py +14 -0
- pythonlings/curriculum/exercises/enums/enums4.py +13 -0
- pythonlings/curriculum/exercises/enums/enums5.py +14 -0
- pythonlings/curriculum/exercises/enums/enums6.py +15 -0
- pythonlings/curriculum/exercises/exceptions/exceptions1.py +15 -0
- pythonlings/curriculum/exercises/exceptions/exceptions10.py +19 -0
- pythonlings/curriculum/exercises/exceptions/exceptions2.py +12 -0
- pythonlings/curriculum/exercises/exceptions/exceptions3.py +13 -0
- pythonlings/curriculum/exercises/exceptions/exceptions4.py +17 -0
- pythonlings/curriculum/exercises/exceptions/exceptions5.py +20 -0
- pythonlings/curriculum/exercises/exceptions/exceptions6.py +13 -0
- pythonlings/curriculum/exercises/exceptions/exceptions7.py +15 -0
- pythonlings/curriculum/exercises/exceptions/exceptions8.py +17 -0
- pythonlings/curriculum/exercises/exceptions/exceptions9.py +20 -0
- pythonlings/curriculum/exercises/file_io/file_io1.py +18 -0
- pythonlings/curriculum/exercises/file_io/file_io10.py +25 -0
- pythonlings/curriculum/exercises/file_io/file_io2.py +16 -0
- pythonlings/curriculum/exercises/file_io/file_io3.py +18 -0
- pythonlings/curriculum/exercises/file_io/file_io4.py +21 -0
- pythonlings/curriculum/exercises/file_io/file_io5.py +19 -0
- pythonlings/curriculum/exercises/file_io/file_io6.py +22 -0
- pythonlings/curriculum/exercises/file_io/file_io7.py +20 -0
- pythonlings/curriculum/exercises/file_io/file_io8.py +18 -0
- pythonlings/curriculum/exercises/file_io/file_io9.py +19 -0
- pythonlings/curriculum/exercises/functional/functional1.py +7 -0
- pythonlings/curriculum/exercises/functional/functional10.py +19 -0
- pythonlings/curriculum/exercises/functional/functional2.py +8 -0
- pythonlings/curriculum/exercises/functional/functional3.py +11 -0
- pythonlings/curriculum/exercises/functional/functional4.py +11 -0
- pythonlings/curriculum/exercises/functional/functional5.py +11 -0
- pythonlings/curriculum/exercises/functional/functional6.py +14 -0
- pythonlings/curriculum/exercises/functional/functional7.py +12 -0
- pythonlings/curriculum/exercises/functional/functional8.py +13 -0
- pythonlings/curriculum/exercises/functional/functional9.py +15 -0
- pythonlings/curriculum/exercises/functions/functions1.py +8 -0
- pythonlings/curriculum/exercises/functions/functions10.py +19 -0
- pythonlings/curriculum/exercises/functions/functions2.py +9 -0
- pythonlings/curriculum/exercises/functions/functions3.py +8 -0
- pythonlings/curriculum/exercises/functions/functions4.py +8 -0
- pythonlings/curriculum/exercises/functions/functions5.py +11 -0
- pythonlings/curriculum/exercises/functions/functions6.py +16 -0
- pythonlings/curriculum/exercises/functions/functions7.py +11 -0
- pythonlings/curriculum/exercises/functions/functions8.py +10 -0
- pythonlings/curriculum/exercises/functions/functions9.py +16 -0
- pythonlings/curriculum/exercises/generators/generators1.py +13 -0
- pythonlings/curriculum/exercises/generators/generators10.py +16 -0
- pythonlings/curriculum/exercises/generators/generators2.py +17 -0
- pythonlings/curriculum/exercises/generators/generators3.py +19 -0
- pythonlings/curriculum/exercises/generators/generators4.py +12 -0
- pythonlings/curriculum/exercises/generators/generators5.py +24 -0
- pythonlings/curriculum/exercises/generators/generators6.py +20 -0
- pythonlings/curriculum/exercises/generators/generators7.py +14 -0
- pythonlings/curriculum/exercises/generators/generators8.py +17 -0
- pythonlings/curriculum/exercises/generators/generators9.py +26 -0
- pythonlings/curriculum/exercises/itertools/itertools1.py +10 -0
- pythonlings/curriculum/exercises/itertools/itertools2.py +8 -0
- pythonlings/curriculum/exercises/itertools/itertools3.py +10 -0
- pythonlings/curriculum/exercises/itertools/itertools4.py +12 -0
- pythonlings/curriculum/exercises/itertools/itertools5.py +9 -0
- pythonlings/curriculum/exercises/itertools/itertools6.py +9 -0
- pythonlings/curriculum/exercises/itertools/itertools7.py +10 -0
- pythonlings/curriculum/exercises/itertools/itertools8.py +18 -0
- pythonlings/curriculum/exercises/json/json1.py +10 -0
- pythonlings/curriculum/exercises/json/json2.py +9 -0
- pythonlings/curriculum/exercises/json/json3.py +10 -0
- pythonlings/curriculum/exercises/json/json4.py +13 -0
- pythonlings/curriculum/exercises/json/json5.py +9 -0
- pythonlings/curriculum/exercises/json/json6.py +10 -0
- pythonlings/curriculum/exercises/json/json7.py +10 -0
- pythonlings/curriculum/exercises/json/json8.py +12 -0
- pythonlings/curriculum/exercises/lists/lists1.py +7 -0
- pythonlings/curriculum/exercises/lists/lists10.py +28 -0
- pythonlings/curriculum/exercises/lists/lists2.py +13 -0
- pythonlings/curriculum/exercises/lists/lists3.py +16 -0
- pythonlings/curriculum/exercises/lists/lists4.py +16 -0
- pythonlings/curriculum/exercises/lists/lists5.py +16 -0
- pythonlings/curriculum/exercises/lists/lists6.py +15 -0
- pythonlings/curriculum/exercises/lists/lists7.py +13 -0
- pythonlings/curriculum/exercises/lists/lists8.py +15 -0
- pythonlings/curriculum/exercises/lists/lists9.py +19 -0
- pythonlings/curriculum/exercises/loops/loops1.py +8 -0
- pythonlings/curriculum/exercises/loops/loops10.py +22 -0
- pythonlings/curriculum/exercises/loops/loops2.py +10 -0
- pythonlings/curriculum/exercises/loops/loops3.py +10 -0
- pythonlings/curriculum/exercises/loops/loops4.py +12 -0
- pythonlings/curriculum/exercises/loops/loops5.py +13 -0
- pythonlings/curriculum/exercises/loops/loops6.py +10 -0
- pythonlings/curriculum/exercises/loops/loops7.py +13 -0
- pythonlings/curriculum/exercises/loops/loops8.py +11 -0
- pythonlings/curriculum/exercises/loops/loops9.py +11 -0
- pythonlings/curriculum/exercises/modules/modules1.py +10 -0
- pythonlings/curriculum/exercises/modules/modules2.py +10 -0
- pythonlings/curriculum/exercises/modules/modules3.py +13 -0
- pythonlings/curriculum/exercises/modules/modules4.py +18 -0
- pythonlings/curriculum/exercises/modules/modules5.py +17 -0
- pythonlings/curriculum/exercises/modules/modules6.py +12 -0
- pythonlings/curriculum/exercises/modules/modules7.py +16 -0
- pythonlings/curriculum/exercises/modules/modules8.py +23 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced1.py +11 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced10.py +18 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced11.py +13 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced12.py +12 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced2.py +13 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced3.py +22 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced4.py +12 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced5.py +11 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced6.py +12 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced7.py +14 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced8.py +14 -0
- pythonlings/curriculum/exercises/oop_advanced/oop_advanced9.py +9 -0
- pythonlings/curriculum/exercises/pathlib/pathlib1.py +9 -0
- pythonlings/curriculum/exercises/pathlib/pathlib2.py +9 -0
- pythonlings/curriculum/exercises/pathlib/pathlib3.py +11 -0
- pythonlings/curriculum/exercises/pathlib/pathlib4.py +9 -0
- pythonlings/curriculum/exercises/pathlib/pathlib5.py +9 -0
- pythonlings/curriculum/exercises/pathlib/pathlib6.py +10 -0
- pythonlings/curriculum/exercises/recursion/recursion1.py +12 -0
- pythonlings/curriculum/exercises/recursion/recursion2.py +12 -0
- pythonlings/curriculum/exercises/recursion/recursion3.py +12 -0
- pythonlings/curriculum/exercises/recursion/recursion4.py +12 -0
- pythonlings/curriculum/exercises/recursion/recursion5.py +14 -0
- pythonlings/curriculum/exercises/recursion/recursion6.py +13 -0
- pythonlings/curriculum/exercises/recursion/recursion7.py +20 -0
- pythonlings/curriculum/exercises/recursion/recursion8.py +27 -0
- pythonlings/curriculum/exercises/regex/regex1.py +16 -0
- pythonlings/curriculum/exercises/regex/regex10.py +31 -0
- pythonlings/curriculum/exercises/regex/regex2.py +16 -0
- pythonlings/curriculum/exercises/regex/regex3.py +16 -0
- pythonlings/curriculum/exercises/regex/regex4.py +19 -0
- pythonlings/curriculum/exercises/regex/regex5.py +19 -0
- pythonlings/curriculum/exercises/regex/regex6.py +23 -0
- pythonlings/curriculum/exercises/regex/regex7.py +24 -0
- pythonlings/curriculum/exercises/regex/regex8.py +19 -0
- pythonlings/curriculum/exercises/regex/regex9.py +22 -0
- pythonlings/curriculum/exercises/sets/sets1.py +6 -0
- pythonlings/curriculum/exercises/sets/sets10.py +21 -0
- pythonlings/curriculum/exercises/sets/sets2.py +12 -0
- pythonlings/curriculum/exercises/sets/sets3.py +15 -0
- pythonlings/curriculum/exercises/sets/sets4.py +14 -0
- pythonlings/curriculum/exercises/sets/sets5.py +14 -0
- pythonlings/curriculum/exercises/sets/sets6.py +14 -0
- pythonlings/curriculum/exercises/sets/sets7.py +16 -0
- pythonlings/curriculum/exercises/sets/sets8.py +16 -0
- pythonlings/curriculum/exercises/sets/sets9.py +15 -0
- pythonlings/curriculum/exercises/strings/strings1.py +6 -0
- pythonlings/curriculum/exercises/strings/strings10.py +11 -0
- pythonlings/curriculum/exercises/strings/strings2.py +9 -0
- pythonlings/curriculum/exercises/strings/strings3.py +9 -0
- pythonlings/curriculum/exercises/strings/strings4.py +8 -0
- pythonlings/curriculum/exercises/strings/strings5.py +10 -0
- pythonlings/curriculum/exercises/strings/strings6.py +10 -0
- pythonlings/curriculum/exercises/strings/strings7.py +10 -0
- pythonlings/curriculum/exercises/strings/strings8.py +9 -0
- pythonlings/curriculum/exercises/strings/strings9.py +10 -0
- pythonlings/curriculum/exercises/testing/testing1.py +16 -0
- pythonlings/curriculum/exercises/testing/testing10.py +21 -0
- pythonlings/curriculum/exercises/testing/testing11.py +27 -0
- pythonlings/curriculum/exercises/testing/testing12.py +51 -0
- pythonlings/curriculum/exercises/testing/testing2.py +15 -0
- pythonlings/curriculum/exercises/testing/testing3.py +19 -0
- pythonlings/curriculum/exercises/testing/testing4.py +19 -0
- pythonlings/curriculum/exercises/testing/testing5.py +18 -0
- pythonlings/curriculum/exercises/testing/testing6.py +27 -0
- pythonlings/curriculum/exercises/testing/testing7.py +27 -0
- pythonlings/curriculum/exercises/testing/testing8.py +29 -0
- pythonlings/curriculum/exercises/testing/testing9.py +30 -0
- pythonlings/curriculum/exercises/tuples/tuples1.py +7 -0
- pythonlings/curriculum/exercises/tuples/tuples10.py +26 -0
- pythonlings/curriculum/exercises/tuples/tuples2.py +11 -0
- pythonlings/curriculum/exercises/tuples/tuples3.py +9 -0
- pythonlings/curriculum/exercises/tuples/tuples4.py +8 -0
- pythonlings/curriculum/exercises/tuples/tuples5.py +12 -0
- pythonlings/curriculum/exercises/tuples/tuples6.py +15 -0
- pythonlings/curriculum/exercises/tuples/tuples7.py +14 -0
- pythonlings/curriculum/exercises/tuples/tuples8.py +13 -0
- pythonlings/curriculum/exercises/tuples/tuples9.py +18 -0
- pythonlings/curriculum/exercises/type_hints/type_hints1.py +9 -0
- pythonlings/curriculum/exercises/type_hints/type_hints2.py +13 -0
- pythonlings/curriculum/exercises/type_hints/type_hints3.py +13 -0
- pythonlings/curriculum/exercises/type_hints/type_hints4.py +21 -0
- pythonlings/curriculum/exercises/type_hints/type_hints5.py +15 -0
- pythonlings/curriculum/exercises/type_hints/type_hints6.py +16 -0
- pythonlings/curriculum/exercises/type_hints/type_hints7.py +19 -0
- pythonlings/curriculum/exercises/type_hints/type_hints8.py +27 -0
- pythonlings/curriculum/exercises/variables/variables1.py +10 -0
- pythonlings/curriculum/exercises/variables/variables10.py +14 -0
- pythonlings/curriculum/exercises/variables/variables2.py +11 -0
- pythonlings/curriculum/exercises/variables/variables3.py +11 -0
- pythonlings/curriculum/exercises/variables/variables4.py +9 -0
- pythonlings/curriculum/exercises/variables/variables5.py +11 -0
- pythonlings/curriculum/exercises/variables/variables6.py +9 -0
- pythonlings/curriculum/exercises/variables/variables7.py +10 -0
- pythonlings/curriculum/exercises/variables/variables8.py +12 -0
- pythonlings/curriculum/exercises/variables/variables9.py +10 -0
- pythonlings/curriculum/info.toml +1755 -0
- pythonlings/curriculum/solutions/.keep +1 -0
- pythonlings/curriculum/solutions/_answers.py +1654 -0
- pythonlings/curriculum/solutions/async1.py +2 -0
- pythonlings/curriculum/solutions/async10.py +2 -0
- pythonlings/curriculum/solutions/async2.py +2 -0
- pythonlings/curriculum/solutions/async3.py +2 -0
- pythonlings/curriculum/solutions/async4.py +2 -0
- pythonlings/curriculum/solutions/async5.py +2 -0
- pythonlings/curriculum/solutions/async6.py +2 -0
- pythonlings/curriculum/solutions/async7.py +2 -0
- pythonlings/curriculum/solutions/async8.py +2 -0
- pythonlings/curriculum/solutions/async9.py +2 -0
- pythonlings/curriculum/solutions/classes1.py +2 -0
- pythonlings/curriculum/solutions/classes10.py +2 -0
- pythonlings/curriculum/solutions/classes11.py +2 -0
- pythonlings/curriculum/solutions/classes12.py +2 -0
- pythonlings/curriculum/solutions/classes2.py +2 -0
- pythonlings/curriculum/solutions/classes3.py +2 -0
- pythonlings/curriculum/solutions/classes4.py +2 -0
- pythonlings/curriculum/solutions/classes5.py +2 -0
- pythonlings/curriculum/solutions/classes6.py +2 -0
- pythonlings/curriculum/solutions/classes7.py +2 -0
- pythonlings/curriculum/solutions/classes8.py +2 -0
- pythonlings/curriculum/solutions/classes9.py +2 -0
- pythonlings/curriculum/solutions/collections1.py +2 -0
- pythonlings/curriculum/solutions/collections10.py +2 -0
- pythonlings/curriculum/solutions/collections2.py +2 -0
- pythonlings/curriculum/solutions/collections3.py +2 -0
- pythonlings/curriculum/solutions/collections4.py +2 -0
- pythonlings/curriculum/solutions/collections5.py +2 -0
- pythonlings/curriculum/solutions/collections6.py +2 -0
- pythonlings/curriculum/solutions/collections7.py +2 -0
- pythonlings/curriculum/solutions/collections8.py +2 -0
- pythonlings/curriculum/solutions/collections9.py +2 -0
- pythonlings/curriculum/solutions/comprehensions1.py +2 -0
- pythonlings/curriculum/solutions/comprehensions10.py +2 -0
- pythonlings/curriculum/solutions/comprehensions2.py +2 -0
- pythonlings/curriculum/solutions/comprehensions3.py +2 -0
- pythonlings/curriculum/solutions/comprehensions4.py +2 -0
- pythonlings/curriculum/solutions/comprehensions5.py +2 -0
- pythonlings/curriculum/solutions/comprehensions6.py +2 -0
- pythonlings/curriculum/solutions/comprehensions7.py +2 -0
- pythonlings/curriculum/solutions/comprehensions8.py +2 -0
- pythonlings/curriculum/solutions/comprehensions9.py +2 -0
- pythonlings/curriculum/solutions/conditionals1.py +2 -0
- pythonlings/curriculum/solutions/conditionals10.py +2 -0
- pythonlings/curriculum/solutions/conditionals2.py +2 -0
- pythonlings/curriculum/solutions/conditionals3.py +2 -0
- pythonlings/curriculum/solutions/conditionals4.py +2 -0
- pythonlings/curriculum/solutions/conditionals5.py +2 -0
- pythonlings/curriculum/solutions/conditionals6.py +2 -0
- pythonlings/curriculum/solutions/conditionals7.py +2 -0
- pythonlings/curriculum/solutions/conditionals8.py +2 -0
- pythonlings/curriculum/solutions/conditionals9.py +2 -0
- pythonlings/curriculum/solutions/context_managers1.py +2 -0
- pythonlings/curriculum/solutions/context_managers2.py +2 -0
- pythonlings/curriculum/solutions/context_managers3.py +2 -0
- pythonlings/curriculum/solutions/context_managers4.py +2 -0
- pythonlings/curriculum/solutions/context_managers5.py +2 -0
- pythonlings/curriculum/solutions/context_managers6.py +2 -0
- pythonlings/curriculum/solutions/context_managers7.py +2 -0
- pythonlings/curriculum/solutions/context_managers8.py +2 -0
- pythonlings/curriculum/solutions/dataclasses1.py +2 -0
- pythonlings/curriculum/solutions/dataclasses2.py +2 -0
- pythonlings/curriculum/solutions/dataclasses3.py +2 -0
- pythonlings/curriculum/solutions/dataclasses4.py +2 -0
- pythonlings/curriculum/solutions/dataclasses5.py +2 -0
- pythonlings/curriculum/solutions/dataclasses6.py +2 -0
- pythonlings/curriculum/solutions/dataclasses7.py +2 -0
- pythonlings/curriculum/solutions/dataclasses8.py +2 -0
- pythonlings/curriculum/solutions/datetime1.py +2 -0
- pythonlings/curriculum/solutions/datetime2.py +2 -0
- pythonlings/curriculum/solutions/datetime3.py +2 -0
- pythonlings/curriculum/solutions/datetime4.py +2 -0
- pythonlings/curriculum/solutions/datetime5.py +2 -0
- pythonlings/curriculum/solutions/datetime6.py +2 -0
- pythonlings/curriculum/solutions/datetime7.py +2 -0
- pythonlings/curriculum/solutions/datetime8.py +2 -0
- pythonlings/curriculum/solutions/decorators1.py +2 -0
- pythonlings/curriculum/solutions/decorators10.py +2 -0
- pythonlings/curriculum/solutions/decorators2.py +2 -0
- pythonlings/curriculum/solutions/decorators3.py +2 -0
- pythonlings/curriculum/solutions/decorators4.py +2 -0
- pythonlings/curriculum/solutions/decorators5.py +2 -0
- pythonlings/curriculum/solutions/decorators6.py +2 -0
- pythonlings/curriculum/solutions/decorators7.py +2 -0
- pythonlings/curriculum/solutions/decorators8.py +2 -0
- pythonlings/curriculum/solutions/decorators9.py +2 -0
- pythonlings/curriculum/solutions/dictionaries1.py +2 -0
- pythonlings/curriculum/solutions/dictionaries10.py +2 -0
- pythonlings/curriculum/solutions/dictionaries2.py +2 -0
- pythonlings/curriculum/solutions/dictionaries3.py +2 -0
- pythonlings/curriculum/solutions/dictionaries4.py +2 -0
- pythonlings/curriculum/solutions/dictionaries5.py +2 -0
- pythonlings/curriculum/solutions/dictionaries6.py +2 -0
- pythonlings/curriculum/solutions/dictionaries7.py +2 -0
- pythonlings/curriculum/solutions/dictionaries8.py +2 -0
- pythonlings/curriculum/solutions/dictionaries9.py +2 -0
- pythonlings/curriculum/solutions/enums1.py +2 -0
- pythonlings/curriculum/solutions/enums2.py +2 -0
- pythonlings/curriculum/solutions/enums3.py +2 -0
- pythonlings/curriculum/solutions/enums4.py +2 -0
- pythonlings/curriculum/solutions/enums5.py +2 -0
- pythonlings/curriculum/solutions/enums6.py +2 -0
- pythonlings/curriculum/solutions/exceptions1.py +2 -0
- pythonlings/curriculum/solutions/exceptions10.py +2 -0
- pythonlings/curriculum/solutions/exceptions2.py +2 -0
- pythonlings/curriculum/solutions/exceptions3.py +2 -0
- pythonlings/curriculum/solutions/exceptions4.py +2 -0
- pythonlings/curriculum/solutions/exceptions5.py +2 -0
- pythonlings/curriculum/solutions/exceptions6.py +2 -0
- pythonlings/curriculum/solutions/exceptions7.py +2 -0
- pythonlings/curriculum/solutions/exceptions8.py +2 -0
- pythonlings/curriculum/solutions/exceptions9.py +2 -0
- pythonlings/curriculum/solutions/file_io1.py +2 -0
- pythonlings/curriculum/solutions/file_io10.py +2 -0
- pythonlings/curriculum/solutions/file_io2.py +2 -0
- pythonlings/curriculum/solutions/file_io3.py +2 -0
- pythonlings/curriculum/solutions/file_io4.py +2 -0
- pythonlings/curriculum/solutions/file_io5.py +2 -0
- pythonlings/curriculum/solutions/file_io6.py +2 -0
- pythonlings/curriculum/solutions/file_io7.py +2 -0
- pythonlings/curriculum/solutions/file_io8.py +2 -0
- pythonlings/curriculum/solutions/file_io9.py +2 -0
- pythonlings/curriculum/solutions/functional1.py +2 -0
- pythonlings/curriculum/solutions/functional10.py +2 -0
- pythonlings/curriculum/solutions/functional2.py +2 -0
- pythonlings/curriculum/solutions/functional3.py +2 -0
- pythonlings/curriculum/solutions/functional4.py +2 -0
- pythonlings/curriculum/solutions/functional5.py +2 -0
- pythonlings/curriculum/solutions/functional6.py +2 -0
- pythonlings/curriculum/solutions/functional7.py +2 -0
- pythonlings/curriculum/solutions/functional8.py +2 -0
- pythonlings/curriculum/solutions/functional9.py +2 -0
- pythonlings/curriculum/solutions/functions1.py +2 -0
- pythonlings/curriculum/solutions/functions10.py +2 -0
- pythonlings/curriculum/solutions/functions2.py +2 -0
- pythonlings/curriculum/solutions/functions3.py +2 -0
- pythonlings/curriculum/solutions/functions4.py +2 -0
- pythonlings/curriculum/solutions/functions5.py +2 -0
- pythonlings/curriculum/solutions/functions6.py +2 -0
- pythonlings/curriculum/solutions/functions7.py +2 -0
- pythonlings/curriculum/solutions/functions8.py +2 -0
- pythonlings/curriculum/solutions/functions9.py +2 -0
- pythonlings/curriculum/solutions/generators1.py +2 -0
- pythonlings/curriculum/solutions/generators10.py +2 -0
- pythonlings/curriculum/solutions/generators2.py +2 -0
- pythonlings/curriculum/solutions/generators3.py +2 -0
- pythonlings/curriculum/solutions/generators4.py +2 -0
- pythonlings/curriculum/solutions/generators5.py +2 -0
- pythonlings/curriculum/solutions/generators6.py +2 -0
- pythonlings/curriculum/solutions/generators7.py +2 -0
- pythonlings/curriculum/solutions/generators8.py +2 -0
- pythonlings/curriculum/solutions/generators9.py +2 -0
- pythonlings/curriculum/solutions/itertools1.py +2 -0
- pythonlings/curriculum/solutions/itertools2.py +2 -0
- pythonlings/curriculum/solutions/itertools3.py +2 -0
- pythonlings/curriculum/solutions/itertools4.py +2 -0
- pythonlings/curriculum/solutions/itertools5.py +2 -0
- pythonlings/curriculum/solutions/itertools6.py +2 -0
- pythonlings/curriculum/solutions/itertools7.py +2 -0
- pythonlings/curriculum/solutions/itertools8.py +2 -0
- pythonlings/curriculum/solutions/json1.py +2 -0
- pythonlings/curriculum/solutions/json2.py +2 -0
- pythonlings/curriculum/solutions/json3.py +2 -0
- pythonlings/curriculum/solutions/json4.py +2 -0
- pythonlings/curriculum/solutions/json5.py +2 -0
- pythonlings/curriculum/solutions/json6.py +2 -0
- pythonlings/curriculum/solutions/json7.py +2 -0
- pythonlings/curriculum/solutions/json8.py +2 -0
- pythonlings/curriculum/solutions/lists1.py +2 -0
- pythonlings/curriculum/solutions/lists10.py +2 -0
- pythonlings/curriculum/solutions/lists2.py +2 -0
- pythonlings/curriculum/solutions/lists3.py +2 -0
- pythonlings/curriculum/solutions/lists4.py +2 -0
- pythonlings/curriculum/solutions/lists5.py +2 -0
- pythonlings/curriculum/solutions/lists6.py +2 -0
- pythonlings/curriculum/solutions/lists7.py +2 -0
- pythonlings/curriculum/solutions/lists8.py +2 -0
- pythonlings/curriculum/solutions/lists9.py +2 -0
- pythonlings/curriculum/solutions/loops1.py +2 -0
- pythonlings/curriculum/solutions/loops10.py +2 -0
- pythonlings/curriculum/solutions/loops2.py +2 -0
- pythonlings/curriculum/solutions/loops3.py +2 -0
- pythonlings/curriculum/solutions/loops4.py +2 -0
- pythonlings/curriculum/solutions/loops5.py +2 -0
- pythonlings/curriculum/solutions/loops6.py +2 -0
- pythonlings/curriculum/solutions/loops7.py +2 -0
- pythonlings/curriculum/solutions/loops8.py +2 -0
- pythonlings/curriculum/solutions/loops9.py +2 -0
- pythonlings/curriculum/solutions/modules1.py +2 -0
- pythonlings/curriculum/solutions/modules2.py +2 -0
- pythonlings/curriculum/solutions/modules3.py +2 -0
- pythonlings/curriculum/solutions/modules4.py +2 -0
- pythonlings/curriculum/solutions/modules5.py +2 -0
- pythonlings/curriculum/solutions/modules6.py +2 -0
- pythonlings/curriculum/solutions/modules7.py +2 -0
- pythonlings/curriculum/solutions/modules8.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced1.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced10.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced11.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced12.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced2.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced3.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced4.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced5.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced6.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced7.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced8.py +2 -0
- pythonlings/curriculum/solutions/oop_advanced9.py +2 -0
- pythonlings/curriculum/solutions/pathlib1.py +2 -0
- pythonlings/curriculum/solutions/pathlib2.py +2 -0
- pythonlings/curriculum/solutions/pathlib3.py +2 -0
- pythonlings/curriculum/solutions/pathlib4.py +2 -0
- pythonlings/curriculum/solutions/pathlib5.py +2 -0
- pythonlings/curriculum/solutions/pathlib6.py +2 -0
- pythonlings/curriculum/solutions/recursion1.py +2 -0
- pythonlings/curriculum/solutions/recursion2.py +2 -0
- pythonlings/curriculum/solutions/recursion3.py +2 -0
- pythonlings/curriculum/solutions/recursion4.py +2 -0
- pythonlings/curriculum/solutions/recursion5.py +2 -0
- pythonlings/curriculum/solutions/recursion6.py +2 -0
- pythonlings/curriculum/solutions/recursion7.py +2 -0
- pythonlings/curriculum/solutions/recursion8.py +2 -0
- pythonlings/curriculum/solutions/regex1.py +2 -0
- pythonlings/curriculum/solutions/regex10.py +2 -0
- pythonlings/curriculum/solutions/regex2.py +2 -0
- pythonlings/curriculum/solutions/regex3.py +2 -0
- pythonlings/curriculum/solutions/regex4.py +2 -0
- pythonlings/curriculum/solutions/regex5.py +2 -0
- pythonlings/curriculum/solutions/regex6.py +2 -0
- pythonlings/curriculum/solutions/regex7.py +2 -0
- pythonlings/curriculum/solutions/regex8.py +2 -0
- pythonlings/curriculum/solutions/regex9.py +2 -0
- pythonlings/curriculum/solutions/sets1.py +2 -0
- pythonlings/curriculum/solutions/sets10.py +2 -0
- pythonlings/curriculum/solutions/sets2.py +2 -0
- pythonlings/curriculum/solutions/sets3.py +2 -0
- pythonlings/curriculum/solutions/sets4.py +2 -0
- pythonlings/curriculum/solutions/sets5.py +2 -0
- pythonlings/curriculum/solutions/sets6.py +2 -0
- pythonlings/curriculum/solutions/sets7.py +2 -0
- pythonlings/curriculum/solutions/sets8.py +2 -0
- pythonlings/curriculum/solutions/sets9.py +2 -0
- pythonlings/curriculum/solutions/strings1.py +2 -0
- pythonlings/curriculum/solutions/strings10.py +2 -0
- pythonlings/curriculum/solutions/strings2.py +2 -0
- pythonlings/curriculum/solutions/strings3.py +2 -0
- pythonlings/curriculum/solutions/strings4.py +2 -0
- pythonlings/curriculum/solutions/strings5.py +2 -0
- pythonlings/curriculum/solutions/strings6.py +2 -0
- pythonlings/curriculum/solutions/strings7.py +2 -0
- pythonlings/curriculum/solutions/strings8.py +2 -0
- pythonlings/curriculum/solutions/strings9.py +2 -0
- pythonlings/curriculum/solutions/testing1.py +2 -0
- pythonlings/curriculum/solutions/testing10.py +2 -0
- pythonlings/curriculum/solutions/testing11.py +2 -0
- pythonlings/curriculum/solutions/testing12.py +2 -0
- pythonlings/curriculum/solutions/testing2.py +2 -0
- pythonlings/curriculum/solutions/testing3.py +2 -0
- pythonlings/curriculum/solutions/testing4.py +2 -0
- pythonlings/curriculum/solutions/testing5.py +2 -0
- pythonlings/curriculum/solutions/testing6.py +2 -0
- pythonlings/curriculum/solutions/testing7.py +2 -0
- pythonlings/curriculum/solutions/testing8.py +2 -0
- pythonlings/curriculum/solutions/testing9.py +2 -0
- pythonlings/curriculum/solutions/tuples1.py +2 -0
- pythonlings/curriculum/solutions/tuples10.py +2 -0
- pythonlings/curriculum/solutions/tuples2.py +2 -0
- pythonlings/curriculum/solutions/tuples3.py +2 -0
- pythonlings/curriculum/solutions/tuples4.py +2 -0
- pythonlings/curriculum/solutions/tuples5.py +2 -0
- pythonlings/curriculum/solutions/tuples6.py +2 -0
- pythonlings/curriculum/solutions/tuples7.py +2 -0
- pythonlings/curriculum/solutions/tuples8.py +2 -0
- pythonlings/curriculum/solutions/tuples9.py +2 -0
- pythonlings/curriculum/solutions/type_hints1.py +2 -0
- pythonlings/curriculum/solutions/type_hints2.py +2 -0
- pythonlings/curriculum/solutions/type_hints3.py +2 -0
- pythonlings/curriculum/solutions/type_hints4.py +2 -0
- pythonlings/curriculum/solutions/type_hints5.py +2 -0
- pythonlings/curriculum/solutions/type_hints6.py +2 -0
- pythonlings/curriculum/solutions/type_hints7.py +2 -0
- pythonlings/curriculum/solutions/type_hints8.py +2 -0
- pythonlings/curriculum/solutions/variables1.py +2 -0
- pythonlings/curriculum/solutions/variables10.py +2 -0
- pythonlings/curriculum/solutions/variables2.py +2 -0
- pythonlings/curriculum/solutions/variables3.py +2 -0
- pythonlings/curriculum/solutions/variables4.py +2 -0
- pythonlings/curriculum/solutions/variables5.py +2 -0
- pythonlings/curriculum/solutions/variables6.py +2 -0
- pythonlings/curriculum/solutions/variables7.py +2 -0
- pythonlings/curriculum/solutions/variables8.py +2 -0
- pythonlings/curriculum/solutions/variables9.py +2 -0
- pythonlings/docs/NOTICE.md +9 -0
- pythonlings/docs/__init__.py +1 -0
- pythonlings/docs/index.json +160 -0
- pythonlings/docs/topics/__init__.py +1 -0
- pythonlings/docs/topics/async.md +97 -0
- pythonlings/docs/topics/classes.md +97 -0
- pythonlings/docs/topics/collections.md +96 -0
- pythonlings/docs/topics/comprehensions.md +97 -0
- pythonlings/docs/topics/conditionals.md +88 -0
- pythonlings/docs/topics/context_managers.md +97 -0
- pythonlings/docs/topics/dataclasses.md +97 -0
- pythonlings/docs/topics/datetime.md +97 -0
- pythonlings/docs/topics/decorators.md +91 -0
- pythonlings/docs/topics/dictionaries.md +96 -0
- pythonlings/docs/topics/enums.md +96 -0
- pythonlings/docs/topics/exceptions.md +96 -0
- pythonlings/docs/topics/file_io.md +96 -0
- pythonlings/docs/topics/functional.md +96 -0
- pythonlings/docs/topics/functions.md +97 -0
- pythonlings/docs/topics/generators.md +97 -0
- pythonlings/docs/topics/itertools.md +96 -0
- pythonlings/docs/topics/json.md +97 -0
- pythonlings/docs/topics/lists.md +97 -0
- pythonlings/docs/topics/loops.md +95 -0
- pythonlings/docs/topics/modules.md +97 -0
- pythonlings/docs/topics/oop_advanced.md +71 -0
- pythonlings/docs/topics/pathlib.md +79 -0
- pythonlings/docs/topics/recursion.md +73 -0
- pythonlings/docs/topics/regex.md +96 -0
- pythonlings/docs/topics/sets.md +97 -0
- pythonlings/docs/topics/strings.md +96 -0
- pythonlings/docs/topics/testing.md +97 -0
- pythonlings/docs/topics/tuples.md +97 -0
- pythonlings/docs/topics/type_hints.md +97 -0
- pythonlings/docs/topics/variables.md +97 -0
- pythonlings/pythonlings.tcss +123 -0
- pythonlings/screens/__init__.py +0 -0
- pythonlings/screens/docs.py +93 -0
- pythonlings/screens/topic_picker.py +107 -0
- pythonlings/screens/track.py +234 -0
- pythonlings/widgets/__init__.py +0 -0
- pythonlings/widgets/editor_pane.py +33 -0
- pythonlings/widgets/exercise_tree.py +33 -0
- pythonlings/widgets/output_panel.py +180 -0
- pythonlings/widgets/progress.py +15 -0
- pythonlings-0.3.0.dist-info/METADATA +259 -0
- pythonlings-0.3.0.dist-info/RECORD +942 -0
- pythonlings-0.3.0.dist-info/WHEEL +4 -0
- pythonlings-0.3.0.dist-info/entry_points.txt +2 -0
- pythonlings-0.3.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Sets
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/tutorial/datastructures.html#sets
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Sets store unique values and support membership tests and set operations.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
5.4. Sets
|
|
12
|
+
|
|
13
|
+
Python also includes a data type for sets. A set is
|
|
14
|
+
an unordered collection with no duplicate elements. Basic uses include
|
|
15
|
+
membership testing and eliminating duplicate entries. Set objects also
|
|
16
|
+
support mathematical operations like union, intersection, difference, and
|
|
17
|
+
symmetric difference.
|
|
18
|
+
|
|
19
|
+
Curly braces or the `set()` function can be used to create sets. Note: to
|
|
20
|
+
create an empty set you have to use `set()`, not `{}`; the latter creates an
|
|
21
|
+
empty dictionary, a data structure that we discuss in the next section.
|
|
22
|
+
|
|
23
|
+
Because sets are unordered, iterating over them or printing them can
|
|
24
|
+
produce the elements in a different order than you expect.
|
|
25
|
+
|
|
26
|
+
Here is a brief demonstration:
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
|
|
30
|
+
>>> print(basket) # show that duplicates have been removed
|
|
31
|
+
{'orange', 'banana', 'pear', 'apple'}
|
|
32
|
+
>>> 'orange' in basket # fast membership testing
|
|
33
|
+
True
|
|
34
|
+
>>> 'crabgrass' in basket
|
|
35
|
+
False
|
|
36
|
+
|
|
37
|
+
>>> # Demonstrate set operations on unique letters from two words
|
|
38
|
+
>>>
|
|
39
|
+
>>> a = set('abracadabra')
|
|
40
|
+
>>> b = set('alacazam')
|
|
41
|
+
>>> a # unique letters in a
|
|
42
|
+
{'a', 'r', 'b', 'c', 'd'}
|
|
43
|
+
>>> a - b # letters in a but not in b
|
|
44
|
+
{'r', 'd', 'b'}
|
|
45
|
+
>>> a | b # letters in a or b or both
|
|
46
|
+
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
|
|
47
|
+
>>> a & b # letters in both a and b
|
|
48
|
+
{'a', 'c'}
|
|
49
|
+
>>> a ^ b # letters in a or b but not both
|
|
50
|
+
{'r', 'd', 'b', 'm', 'z', 'l'}
|
|
51
|
+
|
|
52
|
+
## More reference
|
|
53
|
+
|
|
54
|
+
Source: https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
|
|
55
|
+
|
|
56
|
+
set and frozenset methods for membership and set relationships.
|
|
57
|
+
|
|
58
|
+
Set Types — `set`, `frozenset`
|
|
59
|
+
|
|
60
|
+
A set object is an unordered collection of distinct hashable objects.
|
|
61
|
+
Common uses include membership testing, removing duplicates from a sequence, and
|
|
62
|
+
computing mathematical operations such as intersection, union, difference, and
|
|
63
|
+
symmetric difference.
|
|
64
|
+
(For other containers see the built-in `dict`, `list`,
|
|
65
|
+
and `tuple` classes, and the `collections` module.)
|
|
66
|
+
|
|
67
|
+
Like other collections, sets support `x in set`, `len(set)`, and `for x in
|
|
68
|
+
set`. Being an unordered collection, sets do not record element position or
|
|
69
|
+
order of insertion. Accordingly, sets do not support indexing, slicing, or
|
|
70
|
+
other sequence-like behavior.
|
|
71
|
+
|
|
72
|
+
There are currently two built-in set types, `set` and `frozenset`.
|
|
73
|
+
The `set` type is mutable — the contents can be changed using methods
|
|
74
|
+
like `add()` and `remove()`.
|
|
75
|
+
Since it is mutable, it has no hash value and cannot be used as
|
|
76
|
+
either a dictionary key or as an element of another set.
|
|
77
|
+
The `frozenset` type is immutable and hashable —
|
|
78
|
+
its contents cannot be altered after it is created;
|
|
79
|
+
it can therefore be used as a dictionary key or as an element of another set.
|
|
80
|
+
|
|
81
|
+
Non-empty sets (not frozensets) can be created by placing a comma-separated list
|
|
82
|
+
of elements within braces, for example: `{'jack', 'sjoerd'}`, in addition to the
|
|
83
|
+
`set` constructor.
|
|
84
|
+
|
|
85
|
+
The constructors for both classes work the same:
|
|
86
|
+
|
|
87
|
+
class set(iterable=(), /)
|
|
88
|
+
|
|
89
|
+
class frozenset(iterable=(), /)
|
|
90
|
+
|
|
91
|
+
Return a new set or frozenset object whose elements are taken from
|
|
92
|
+
iterable. The elements of a set must be hashable. To
|
|
93
|
+
represent sets of sets, the inner sets must be `frozenset`
|
|
94
|
+
objects. If iterable is not specified, a new empty set is
|
|
95
|
+
returned.
|
|
96
|
+
|
|
97
|
+
Sets can be created by several means:
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Strings
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Strings are immutable text sequences with indexing, slicing, and many useful methods.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
Text Sequence Type — `str`
|
|
12
|
+
|
|
13
|
+
Textual data in Python is handled with `str` objects, or strings.
|
|
14
|
+
Strings are immutable
|
|
15
|
+
sequences of Unicode code points. String literals are
|
|
16
|
+
written in a variety of ways:
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
Single quotes: `'allows embedded "double" quotes'`
|
|
21
|
+
|
|
22
|
+
-
|
|
23
|
+
|
|
24
|
+
Double quotes: `"allows embedded 'single' quotes"`
|
|
25
|
+
|
|
26
|
+
-
|
|
27
|
+
|
|
28
|
+
Triple quoted: `'''Three single quotes'''`, `"""Three double quotes"""`
|
|
29
|
+
|
|
30
|
+
Triple quoted strings may span multiple lines - all associated whitespace will
|
|
31
|
+
be included in the string literal.
|
|
32
|
+
|
|
33
|
+
String literals that are part of a single expression and have only whitespace
|
|
34
|
+
between them will be implicitly converted to a single string literal. That
|
|
35
|
+
is, `("spam " "eggs") == "spam eggs"`.
|
|
36
|
+
|
|
37
|
+
See String and Bytes literals for more about the various forms of string literal,
|
|
38
|
+
including supported escape sequences, and the `r` (“raw”) prefix that
|
|
39
|
+
disables most escape sequence processing.
|
|
40
|
+
|
|
41
|
+
Strings may also be created from other objects using the `str`
|
|
42
|
+
constructor.
|
|
43
|
+
|
|
44
|
+
Since there is no separate “character” type, indexing a string produces
|
|
45
|
+
strings of length 1. That is, for a non-empty string s, `s[0] == s[0:1]`.
|
|
46
|
+
|
|
47
|
+
There is also no mutable string type, but `str.join()` or
|
|
48
|
+
`io.StringIO` can be used to efficiently construct strings from
|
|
49
|
+
multiple fragments.
|
|
50
|
+
|
|
51
|
+
## More reference
|
|
52
|
+
|
|
53
|
+
Source: https://docs.python.org/3/library/stdtypes.html#string-methods
|
|
54
|
+
|
|
55
|
+
Full reference of string methods with signatures and behaviors.
|
|
56
|
+
|
|
57
|
+
String Methods
|
|
58
|
+
|
|
59
|
+
Strings implement all of the common sequence
|
|
60
|
+
operations, along with the additional methods described below.
|
|
61
|
+
|
|
62
|
+
Strings also support two styles of string formatting, one providing a large
|
|
63
|
+
degree of flexibility and customization (see `str.format()`,
|
|
64
|
+
Format string syntax and Custom string formatting) and the other based on C
|
|
65
|
+
`printf` style formatting that handles a narrower range of types and is
|
|
66
|
+
slightly harder to use correctly, but is often faster for the cases it can
|
|
67
|
+
handle (printf-style String Formatting).
|
|
68
|
+
|
|
69
|
+
The Text Processing Services section of the standard library covers a number of
|
|
70
|
+
other modules that provide various text related utilities (including regular
|
|
71
|
+
expression support in the `re` module).
|
|
72
|
+
|
|
73
|
+
str.capitalize()
|
|
74
|
+
|
|
75
|
+
Return a copy of the string with its first character capitalized and the
|
|
76
|
+
rest lowercased.
|
|
77
|
+
|
|
78
|
+
Changed in version 3.8: The first character is now put into titlecase rather than uppercase.
|
|
79
|
+
This means that characters like digraphs will only have their first
|
|
80
|
+
letter capitalized, instead of the full character.
|
|
81
|
+
|
|
82
|
+
str.casefold()
|
|
83
|
+
|
|
84
|
+
Return a casefolded copy of the string. Casefolded strings may be used for
|
|
85
|
+
caseless matching.
|
|
86
|
+
|
|
87
|
+
Casefolding is similar to lowercasing but more aggressive because it is
|
|
88
|
+
intended to remove all case distinctions in a string. For example, the German
|
|
89
|
+
lowercase letter `'ß'` is equivalent to `"ss"`. Since it is already
|
|
90
|
+
lowercase, `lower()` would do nothing to `'ß'`; `casefold()`
|
|
91
|
+
converts it to `"ss"`.
|
|
92
|
+
For example:
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
>>> 'straße'.lower()
|
|
96
|
+
'straße'
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Testing
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/library/unittest.html
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Tests encode expected behavior so code can be checked repeatedly.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
unittest — Unit testing framework — Python 3.14.6 documentation
|
|
12
|
+
|
|
13
|
+
Navigation
|
|
14
|
+
|
|
15
|
+
-
|
|
16
|
+
index
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
modules |
|
|
20
|
+
|
|
21
|
+
-
|
|
22
|
+
next |
|
|
23
|
+
|
|
24
|
+
-
|
|
25
|
+
previous |
|
|
26
|
+
|
|
27
|
+
-
|
|
28
|
+
|
|
29
|
+
- Python »
|
|
30
|
+
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
-
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
3.14.6 Documentation »
|
|
37
|
+
|
|
38
|
+
- The Python Standard Library »
|
|
39
|
+
|
|
40
|
+
- Development Tools »
|
|
41
|
+
|
|
42
|
+
- `unittest` — Unit testing framework
|
|
43
|
+
|
|
44
|
+
-
|
|
45
|
+
|
|
46
|
+
|
|
|
47
|
+
|
|
48
|
+
-
|
|
49
|
+
|
|
50
|
+
Theme
|
|
51
|
+
|
|
52
|
+
## More reference
|
|
53
|
+
|
|
54
|
+
Source: https://docs.python.org/3/library/doctest.html#how-it-works
|
|
55
|
+
|
|
56
|
+
How doctest finds and runs examples embedded in docstrings.
|
|
57
|
+
|
|
58
|
+
How It Works
|
|
59
|
+
|
|
60
|
+
This section examines in detail how doctest works: which docstrings it looks at,
|
|
61
|
+
how it finds interactive examples, what execution context it uses, how it
|
|
62
|
+
handles exceptions, and how option flags can be used to control its behavior.
|
|
63
|
+
This is the information that you need to know to write doctest examples; for
|
|
64
|
+
information about actually running doctest on these examples, see the following
|
|
65
|
+
sections.
|
|
66
|
+
|
|
67
|
+
Which Docstrings Are Examined?
|
|
68
|
+
|
|
69
|
+
The module docstring, and all function, class and method docstrings are
|
|
70
|
+
searched. Objects imported into the module are not searched.
|
|
71
|
+
|
|
72
|
+
In addition, there are cases when you want tests to be part of a module but not part
|
|
73
|
+
of the help text, which requires that the tests not be included in the docstring.
|
|
74
|
+
Doctest looks for a module-level variable called `__test__` and uses it to locate other
|
|
75
|
+
tests. If `M.__test__` exists, it must be a dict, and each
|
|
76
|
+
entry maps a (string) name to a function object, class object, or string.
|
|
77
|
+
Function and class object docstrings found from `M.__test__` are searched, and
|
|
78
|
+
strings are treated as if they were docstrings. In output, a key `K` in
|
|
79
|
+
`M.__test__` appears with name `M.__test__.K`.
|
|
80
|
+
|
|
81
|
+
For example, place this block of code at the top of `example.py`:
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
__test__ = {
|
|
85
|
+
'numbers': """
|
|
86
|
+
>>> factorial(6)
|
|
87
|
+
720
|
|
88
|
+
|
|
89
|
+
>>> [factorial(n) for n in range(6)]
|
|
90
|
+
[1, 1, 2, 6, 24, 120]
|
|
91
|
+
"""
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The value of `example.__test__["numbers"]` will be treated as a
|
|
97
|
+
docstring and all the tests inside it will be run. It is
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Tuples
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Tuples group ordered values and are commonly unpacked into multiple names.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
5.3. Tuples and Sequences
|
|
12
|
+
|
|
13
|
+
We saw that lists and strings have many common properties, such as indexing and
|
|
14
|
+
slicing operations. They are two examples of sequence data types (see
|
|
15
|
+
Sequence Types — list, tuple, range). Since Python is an evolving language, other sequence data
|
|
16
|
+
types may be added. There is also another standard sequence data type: the
|
|
17
|
+
tuple.
|
|
18
|
+
|
|
19
|
+
A tuple consists of a number of values separated by commas, for instance:
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
>>> t = 12345, 54321, 'hello!'
|
|
23
|
+
>>> t[0]
|
|
24
|
+
12345
|
|
25
|
+
>>> t
|
|
26
|
+
(12345, 54321, 'hello!')
|
|
27
|
+
>>> # Tuples may be nested:
|
|
28
|
+
>>> u = t, (1, 2, 3, 4, 5)
|
|
29
|
+
>>> u
|
|
30
|
+
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
|
|
31
|
+
>>> # Tuples are immutable:
|
|
32
|
+
>>> t[0] = 88888
|
|
33
|
+
Traceback (most recent call last):
|
|
34
|
+
File "<stdin>", line 1, in <module>
|
|
35
|
+
TypeError: 'tuple' object does not support item assignment
|
|
36
|
+
>>> # but they can contain mutable objects:
|
|
37
|
+
>>> v = ([1, 2, 3], [3, 2, 1])
|
|
38
|
+
>>> v
|
|
39
|
+
([1, 2, 3], [3, 2, 1])
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
As you see, on output tuples are always enclosed in parentheses, so that nested
|
|
44
|
+
tuples are interpreted correctly; they may be input with or without surrounding
|
|
45
|
+
parentheses, although often parentheses are necessary anyway (if the tuple is
|
|
46
|
+
part of a larger expression). It is not possible to assign to the individual
|
|
47
|
+
items of a tuple, however it is possible to create tuples which contain mutable
|
|
48
|
+
objects, such as lists.
|
|
49
|
+
|
|
50
|
+
Though tuples may seem similar to lists, they are often used in different
|
|
51
|
+
|
|
52
|
+
## More reference
|
|
53
|
+
|
|
54
|
+
Source: https://docs.python.org/3/library/stdtypes.html#common-sequence-operations
|
|
55
|
+
|
|
56
|
+
Operations shared by all sequence types: indexing, slicing, concatenation.
|
|
57
|
+
|
|
58
|
+
Common Sequence Operations
|
|
59
|
+
|
|
60
|
+
The operations in the following table are supported by most sequence types,
|
|
61
|
+
both mutable and immutable. The `collections.abc.Sequence` ABC is
|
|
62
|
+
provided to make it easier to correctly implement these operations on
|
|
63
|
+
custom sequence types.
|
|
64
|
+
|
|
65
|
+
This table lists the sequence operations sorted in ascending priority. In the
|
|
66
|
+
table, s and t are sequences of the same type, n, i, j and k are
|
|
67
|
+
integers and x is an arbitrary object that meets any type and value
|
|
68
|
+
restrictions imposed by s.
|
|
69
|
+
|
|
70
|
+
The `in` and `not in` operations have the same priorities as the
|
|
71
|
+
comparison operations. The `+` (concatenation) and `*` (repetition)
|
|
72
|
+
operations have the same priority as the corresponding numeric operations. [3]
|
|
73
|
+
|
|
74
|
+
Operation
|
|
75
|
+
|
|
76
|
+
Result
|
|
77
|
+
|
|
78
|
+
Notes
|
|
79
|
+
|
|
80
|
+
`x in s`
|
|
81
|
+
|
|
82
|
+
`True` if an item of s is
|
|
83
|
+
equal to x, else `False`
|
|
84
|
+
|
|
85
|
+
(1)
|
|
86
|
+
|
|
87
|
+
`x not in s`
|
|
88
|
+
|
|
89
|
+
`False` if an item of s is
|
|
90
|
+
equal to x, else `True`
|
|
91
|
+
|
|
92
|
+
(1)
|
|
93
|
+
|
|
94
|
+
`s + t`
|
|
95
|
+
|
|
96
|
+
the concatenation of s and
|
|
97
|
+
t
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Type Hints
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/library/typing.html
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Type hints annotate expected values and help tools reason about your code.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
typing — Support for type hints — Python 3.14.6 documentation
|
|
12
|
+
|
|
13
|
+
Navigation
|
|
14
|
+
|
|
15
|
+
-
|
|
16
|
+
index
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
modules |
|
|
20
|
+
|
|
21
|
+
-
|
|
22
|
+
next |
|
|
23
|
+
|
|
24
|
+
-
|
|
25
|
+
previous |
|
|
26
|
+
|
|
27
|
+
-
|
|
28
|
+
|
|
29
|
+
- Python »
|
|
30
|
+
|
|
31
|
+
-
|
|
32
|
+
|
|
33
|
+
-
|
|
34
|
+
|
|
35
|
+
-
|
|
36
|
+
3.14.6 Documentation »
|
|
37
|
+
|
|
38
|
+
- The Python Standard Library »
|
|
39
|
+
|
|
40
|
+
- Development Tools »
|
|
41
|
+
|
|
42
|
+
- `typing` — Support for type hints
|
|
43
|
+
|
|
44
|
+
-
|
|
45
|
+
|
|
46
|
+
|
|
|
47
|
+
|
|
48
|
+
-
|
|
49
|
+
|
|
50
|
+
Theme
|
|
51
|
+
|
|
52
|
+
## More reference
|
|
53
|
+
|
|
54
|
+
Source: https://docs.python.org/3/reference/datamodel.html#annotations
|
|
55
|
+
|
|
56
|
+
How annotations are stored in `__annotations__`.
|
|
57
|
+
|
|
58
|
+
3.3.12. Annotations
|
|
59
|
+
|
|
60
|
+
Functions, classes, and modules may contain annotations,
|
|
61
|
+
which are a way to associate information (usually type hints)
|
|
62
|
+
with a symbol.
|
|
63
|
+
|
|
64
|
+
object.__annotations__
|
|
65
|
+
|
|
66
|
+
This attribute contains the annotations for an object. It is
|
|
67
|
+
lazily evaluated, so accessing the attribute may
|
|
68
|
+
execute arbitrary code and raise exceptions. If evaluation is successful, the
|
|
69
|
+
attribute is set to a dictionary mapping from variable names to annotations.
|
|
70
|
+
|
|
71
|
+
Changed in version 3.14: Annotations are now lazily evaluated.
|
|
72
|
+
|
|
73
|
+
object.__annotate__(format)
|
|
74
|
+
|
|
75
|
+
An annotate function.
|
|
76
|
+
Returns a new dictionary object mapping attribute/parameter names to their annotation values.
|
|
77
|
+
|
|
78
|
+
Takes a format parameter specifying the format in which annotations values should be provided.
|
|
79
|
+
It must be a member of the `annotationlib.Format` enum, or an integer with
|
|
80
|
+
a value corresponding to a member of the enum.
|
|
81
|
+
|
|
82
|
+
If an annotate function doesn’t support the requested format, it must raise
|
|
83
|
+
`NotImplementedError`. Annotate functions must always support
|
|
84
|
+
`VALUE` format; they must not raise
|
|
85
|
+
`NotImplementedError()` when called with this format.
|
|
86
|
+
|
|
87
|
+
When called with `VALUE` format, an annotate function may raise
|
|
88
|
+
`NameError`; it must not raise `NameError` when called requesting any other format.
|
|
89
|
+
|
|
90
|
+
If an object does not have any annotations, `__annotate__` should preferably be set
|
|
91
|
+
to `None` (it can’t be deleted), rather than set to a function that returns an empty dict.
|
|
92
|
+
|
|
93
|
+
Added in version 3.14.
|
|
94
|
+
|
|
95
|
+
See also
|
|
96
|
+
|
|
97
|
+
PEP 649 — Deferred evaluation of annotation using descriptors
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Variables
|
|
2
|
+
|
|
3
|
+
Source: https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator
|
|
4
|
+
|
|
5
|
+
This local reference is generated from the official Python documentation and trimmed for pythonlings.
|
|
6
|
+
|
|
7
|
+
Assigning names with `=` lets you keep values for later expressions.
|
|
8
|
+
|
|
9
|
+
## Extracted reference
|
|
10
|
+
|
|
11
|
+
3.1. Using Python as a Calculator
|
|
12
|
+
|
|
13
|
+
Let’s try some simple Python commands. Start the interpreter and wait for the
|
|
14
|
+
primary prompt, `>>>`. (It shouldn’t take long.)
|
|
15
|
+
|
|
16
|
+
3.1.1. Numbers
|
|
17
|
+
|
|
18
|
+
The interpreter acts as a simple calculator: you can type an expression into it
|
|
19
|
+
and it will write the value. Expression syntax is straightforward: the
|
|
20
|
+
operators `+`, `-`, `*` and `/` can be used to perform
|
|
21
|
+
arithmetic; parentheses (`()`) can be used for grouping.
|
|
22
|
+
For example:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
>>> 2 + 2
|
|
26
|
+
4
|
|
27
|
+
>>> 50 - 5*6
|
|
28
|
+
20
|
|
29
|
+
>>> (50 - 5*6) / 4
|
|
30
|
+
5.0
|
|
31
|
+
>>> 8 / 5 # division always returns a floating-point number
|
|
32
|
+
1.6
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The integer numbers (e.g. `2`, `4`, `20`) have type `int`,
|
|
37
|
+
the ones with a fractional part (e.g. `5.0`, `1.6`) have type
|
|
38
|
+
`float`. We will see more about numeric types later in the tutorial.
|
|
39
|
+
|
|
40
|
+
Division (`/`) always returns a float. To do floor division and
|
|
41
|
+
get an integer result you can use the `//` operator; to calculate
|
|
42
|
+
the remainder you can use `%`:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
>>> 17 / 3 # classic division returns a float
|
|
46
|
+
5.666666666666667
|
|
47
|
+
>>>
|
|
48
|
+
>>> 17 // 3 # floor division discards the fractional part
|
|
49
|
+
5
|
|
50
|
+
>>> 17 % 3 # the % operator returns the remainder of the division
|
|
51
|
+
|
|
52
|
+
## More reference
|
|
53
|
+
|
|
54
|
+
Source: https://docs.python.org/3/reference/simple_stmts.html#assignment-statements
|
|
55
|
+
|
|
56
|
+
Assignment statement syntax and semantics, including multiple and unpacking targets.
|
|
57
|
+
|
|
58
|
+
7.2. Assignment statements
|
|
59
|
+
|
|
60
|
+
Assignment statements are used to (re)bind names to values and to modify
|
|
61
|
+
attributes or items of mutable objects:
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
|
|
65
|
+
assignment_stmt: (target_list "=")+ (starred_expression | yield_expression)
|
|
66
|
+
target_list: target ("," target)* [","]
|
|
67
|
+
target: identifier
|
|
68
|
+
| "(" [target_list] ")"
|
|
69
|
+
| "[" [target_list] "]"
|
|
70
|
+
| attributeref
|
|
71
|
+
| subscription
|
|
72
|
+
| "*" target
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
(See section Primaries for the syntax definitions for attributeref
|
|
77
|
+
and subscription.)
|
|
78
|
+
|
|
79
|
+
An assignment statement evaluates the expression list (remember that this can be
|
|
80
|
+
a single expression or a comma-separated list, the latter yielding a tuple) and
|
|
81
|
+
assigns the single resulting object to each of the target lists, from left to
|
|
82
|
+
right.
|
|
83
|
+
|
|
84
|
+
Assignment is defined recursively depending on the form of the target (list).
|
|
85
|
+
When a target is part of a mutable object (an attribute reference or
|
|
86
|
+
subscription), the mutable object must ultimately perform the assignment and
|
|
87
|
+
decide about its validity, and may raise an exception if the assignment is
|
|
88
|
+
unacceptable. The rules observed by various types and the exceptions raised are
|
|
89
|
+
given with the definition of the object types (see section The standard type hierarchy).
|
|
90
|
+
|
|
91
|
+
Assignment of an object to a target list, optionally enclosed in parentheses or
|
|
92
|
+
square brackets, is recursively defined as follows.
|
|
93
|
+
|
|
94
|
+
-
|
|
95
|
+
|
|
96
|
+
If the target list is a single target with no trailing comma,
|
|
97
|
+
optionally in parentheses, the object is assigned to that target.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Screen {
|
|
2
|
+
layout: vertical;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
#progress {
|
|
6
|
+
height: 1;
|
|
7
|
+
background: $primary 30%;
|
|
8
|
+
color: $text;
|
|
9
|
+
padding: 0 1;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
#main {
|
|
13
|
+
layout: horizontal;
|
|
14
|
+
height: 1fr;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
#tree {
|
|
18
|
+
width: 25%;
|
|
19
|
+
border-right: solid $primary;
|
|
20
|
+
padding: 1;
|
|
21
|
+
display: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#editor {
|
|
25
|
+
width: 1fr;
|
|
26
|
+
border-right: solid $primary;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#editor #code {
|
|
30
|
+
height: 1fr;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#output {
|
|
34
|
+
width: 1fr;
|
|
35
|
+
padding: 1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#output-header {
|
|
39
|
+
padding: 0 0 1 0;
|
|
40
|
+
border-bottom: solid $primary;
|
|
41
|
+
color: $text;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#output-body,
|
|
45
|
+
#goal,
|
|
46
|
+
#docs,
|
|
47
|
+
#status,
|
|
48
|
+
#next-step,
|
|
49
|
+
#details {
|
|
50
|
+
padding: 1 0 0 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
#output.passed {
|
|
54
|
+
background: $success 20%;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
#output.failed {
|
|
58
|
+
background: $error 20%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#output.pending {
|
|
62
|
+
background: $warning 20%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#hint {
|
|
66
|
+
border-top: dashed $secondary;
|
|
67
|
+
padding: 1 0;
|
|
68
|
+
display: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#hint.visible {
|
|
72
|
+
display: block;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
TopicPickerScreen #topics {
|
|
76
|
+
padding: 1 2;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#topic-banner {
|
|
80
|
+
height: auto;
|
|
81
|
+
padding: 1 2;
|
|
82
|
+
background: $primary 20%;
|
|
83
|
+
color: $text;
|
|
84
|
+
border-bottom: solid $primary;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.topic-row {
|
|
88
|
+
padding: 0 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
DocsScreen {
|
|
92
|
+
align: center middle;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#docs-window {
|
|
96
|
+
width: 72%;
|
|
97
|
+
max-width: 80;
|
|
98
|
+
height: 70%;
|
|
99
|
+
max-height: 28;
|
|
100
|
+
min-height: 14;
|
|
101
|
+
padding: 1 2;
|
|
102
|
+
border: heavy $primary;
|
|
103
|
+
background: $surface;
|
|
104
|
+
color: $text;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
#docs-title {
|
|
108
|
+
height: 1;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
#docs-scroll {
|
|
112
|
+
height: 1fr;
|
|
113
|
+
margin: 1 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#docs-content {
|
|
117
|
+
width: 100%;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#docs-footer {
|
|
121
|
+
height: 1;
|
|
122
|
+
color: $text;
|
|
123
|
+
}
|
|
File without changes
|