Development Links



Primary Python Concepts Different From Omnis
Libraries
In Omnis we have the Omnis engine or executable which is self contained. Python has the Python Standard Library consisting of modules or libraries.

"The Python Standard Library contains the exact syntax, semantics, and tokens of Python. It contains built-in modules that provide access to basic system functionality like I/O and some other core modules." -- Python standard library, geeksforgeeks.org

A library in Omnis is the actual application.

A library in Python is a repository of common callable reusable code usually writtn in C. In Windows the library files have a DLL extension (Dynamic Load Libraries). There are many libraries available to Python. Go here to see brief descriptions of the ones below. Some of the most important (popular) ones besides the essential ones contained in the python standard library are:
  • IPython and Jupyter
  • Matplotlib
  • Numpy (Numerical Python)
  • Pandas (Derived from Panel Data and Python Data Analysis. This must be the tabular data structure equivalent to the Omnis list which is outstanding.)
  • PIP ("PIP is a package manager for Python packages, or modules if you like. Note: If you have Python version 3.4 or later, PIP is included by default." -- Python PIP - W3Schools
  • PyGame
  • PyBrain
  • PyTorch
  • Scikit-learn
  • SciPy
  • Scrapy
  • TensorFlow
  • IDE: IDLE
    IDLE

  • IDLE Docs
  • Link Debugging under IDLE
    BREAKPOINTS
    "To add a breakpoint, right-click on the line that you want to add a breakpoint on and select "Set Breakpoint". The line will become highlighted. (Note that this only works when you are editing a file; it does not work at the interpreter.)" -- Nick ODell
  • IDE: PyCharm
    PyCharm

    | Add an exclusion to Windows Security
    Documentation:
  • PyCharm Doc
  • Debug
  • Breakpoints
  • Start a debugging session
  • Examine and suspended program
  • Stepping through

  • IDEs Support (IntelliJ Platform) | JetBrains
  • PyCharm Knowledge base
  • IDE: Visual Studio Code
    Visual Studio Code

    | Download
    After installing, click the extensions icon in left panel.
    Type/Search for "python"
    Install Python IntelliSense (Pylance) extension verified checkmark by Microsoft
    DEBUGGING PYTHON
    Python IDEs cannot set debug go points
    A huge missing capability in Python IDE debuggers is the Omnis ability to set a go point while stepping prior to the current line being executed. Is there a way to set a ‘go’ or ‘execution’ point in the debugger above the current execution line or breakpoint? This would avoid having to rerun the entire method after making a change. It would allow making a change above the current step, setting the execution point on or above the change and then stepping through the change. Consider this example.

    1 print "set go point example"
    2 calc x = 0
    3 do while x < 10
    4     calc x = x + 1
    5     print x
    6 end while

    Step through the code and enter the loop.
    On the first trip through the loop, stop execution at line 5.
    Without rerunning the entire method, set the go point at line 2 and resume stepping.

    No Python IDE that I know of can do this but the Omnis debugger does it with ease. CoPilot AI assistant explains it this way.
    **User:** If execution stops in Pycharm at line 10 due to a break point, can execution be started at line 8? Without having to run the entire module? And how would you do that?

    **Assistant:** In PyCharm, if execution stops at line 10 due to a breakpoint, you cannot directly start execution at line 8 without restarting the entire module. However, you can use the "Run to Cursor" feature to achieve a similar effect. Here's how you can do it:

    1. **Remove the Breakpoint**: First, remove the breakpoint at line 10.
    2. **Set the Cursor**: Place the cursor at line 8 where you want to start execution.
    3. **Run to Cursor**: Right-click on the line number (line 8) and select "Run to Cursor" or press `Alt+F9`.

    **User:** Why can omnis start execution at a previous line without reach running the entire module, but Pycharm and Visual Studio Code cannot.

    **Assistant:** The ability to restart execution at a previous line without rerunning the entire module is a feature that depends on the underlying architecture and capabilities of the debugger in the development environment. Here are some reasons why Omnis can do this while PyCharm and Visual Studio Code cannot:

    1. **Debugger Architecture**: Omnis Studio's debugger is designed to allow more granular control over the execution flow, including the ability to restart execution at a specific line. This might be due to its integration with the Omnis programming language and its specific runtime environment.

    2. **Language and Runtime**: Omnis Studio is tailored for the Omnis programming language, which might have built-in support for such debugging features. In contrast, Python's runtime and the way it handles execution flow might not support this level of control without significant overhead or complexity.

    3. **IDE Design Philosophy**: Different IDEs have different design philosophies and priorities. Omnis Studio might prioritize features that are particularly useful for its target audience and use cases, while PyCharm and Visual Studio Code focus on a broader range of features that cater to a wider audience of developers.

    4. **Technical Limitations**: Implementing the ability to restart execution at a previous line in Python or other languages supported by PyCharm and Visual Studio Code could be technically challenging. It might require maintaining extensive state information and could introduce complexities in managing the program's execution flow.

    While PyCharm and Visual Studio Code offer powerful debugging tools, they might not include this specific feature due to these reasons.
    Python Lists
    Lists

    • Python.org Tutorial:
    | 3.1.3. Lists
    | 4.8.4. Arbitrary Argument Lists
    | 4.8.5. Unpacking Argument Lists
    | 5.1. More on Lists
    | 11.7. Tools for Working with Lists

    Python.org Reference Manual:
    | 6.15. Expression lists¶
    | 6.2.3. Parenthesized forms
    | 6.2.4. Displays for lists, sets and dictionaries
    | 6.2.5. List displays
    | 6.3.3. Slicings
    | Continue LOOKING FOR LIST REFS
    |
    |
    |
    Pandas DataFrames
    DataFrames & the Series
    Pandas

    "Pandas provides high-level data structures and functions designed to make working with structured or tabular data intuitive and flexible. Since its emergence in 2010, it has helped enable Python to be a powerful and productive data analysis environment. The primary objects in pandas that will be used in this book are the DataFrame, a tabular, column-oriented data structure with both row and column labels, and the Series, a one-dimensional labeled array object."

    "Pandas blends the array-computing ideas of NumPy with the kinds of data manipulation capabilities found in spreadsheets and relational databases (such as SQL)."
    -- McKinney, Wes (2022-08-11T23:58:59.000). Python for Data Analysis 3rd Edition . O'Reilly Media. Kindle Edition.

    "After a standalone installation of Python, each library will have to be separately installed. It is a bit of a hassle to ensure version compatibility between newly installed libraries and the associated dependencies. This is where a third-party distribution like Anaconda comes in handy. Anaconda is the most widely used distribution for Python/R, designed for developing scalable data science solutions. It is compatible with Windows, Linux and macOS and requires 3 GB of disk space. It needs this memory to download and install quite a collection of IDEs and more than 720 packages. For instance, NumPy and pandas are two of the packages that come pre-installed with Anaconda."

    "... Anaconda provides a simple system to set up and handle separate programming environments where packages can be maintained consistently to remain compatible with an application ... When a package is being installed or updated, Anaconda ensures that the dependencies are compatible and performs an auto-update for the dependencies if needed."
    -- Kumar, Ashish (2019-10-24T23:58:59.000). Mastering pandas: A complete guide to pandas, from installation to advanced data analysis techniques, 2nd Edition . Packt Publishing. Kindle Edition.

  • Anaconda Distribution / Free download

  • Tutorials & Courses
    Tutorials & Courses

  • Tutorial: YouTube: Harvard CS50’s Introduction to Programming with Python – Full University
  • Python Full Course for free / Bro Code
  • Tutorial: What Is Pandas in Python? Everything You Need to Know - ActiveState
  • Tutorial: YouTube: Python for Beginners - Learn Python in 1 Hour
  • Tutorial: Future Programmer Channel
  • FILE these Links
    File these links

    • Book: Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter
    • Doc: Input/output — pandas 2.1.1 documentation
    • Web Search: How to load a multicolumn python list at DuckDuckGo
    • Project: YouTube: Python Project | How to track someone location with phone number
    Check Python version on command line and in script
    Check the versions of Python packages and libraries
    Get the OS and its version where Python is running