Programming
Writing the code itself: Python and pandas, JavaScript, web frameworks, testing, Git and AI coding tools.
Tech
Where it connects
- Healthcare
- De-identifying FHIR data: HIPAA Safe Harbor, limited data sets and leaks
- Synthea vs SynPUF: picking synthetic healthcare data for pipeline tests
- HL7 v2 ADT feeds: from pipe-delimited events to an encounters table
- Roster change notifications with FHIR Subscriptions (R4 backport)
- From SSH keys to SMART Backend Services: auth for system-to-system FHIR
- Bulk export and async jobs: serving large rosters with $davinci-data-export
- From full replace to deltas: $member-add and $member-remove in FastAPI
- Modeling a patient roster as a FHIR Group (Da Vinci ATR)
- API integration
- Roster change notifications with FHIR Subscriptions (R4 backport)
- From SSH keys to SMART Backend Services: auth for system-to-system FHIR
- Bulk export and async jobs: serving large rosters with $davinci-data-export
- From full replace to deltas: $member-add and $member-remove in FastAPI
- Retries in Python: from a basic retry loop to exponential backoff for API rate limits
- Selenium vs Beautiful Soup: when to use each, and how to combine them
- Batch API Requests in Python: Throughput vs Rate Limit Trade-Off
- Managing OAuth2 Token Rotation in Postman Without Overwriting Environments
- Data pipelines
- HL7 v2 ADT feeds: from pipe-delimited events to an encounters table
- Tracking S3 file changes with ETags and LastModified
- Comparing Parquet Compression Codecs: Snappy vs ZSTD Benchmark
- How to Get the Status of an AWS Glue Workflow Using boto3
- AWS Glue Job Fails Due to Dependency Version Conflict: How to Fix It
- What Does an Exploratory Data Analysis (EDA) Evaluate?
- Cloud & infra
- De-identifying FHIR data: HIPAA Safe Harbor, limited data sets and leaks
- From SSH keys to SMART Backend Services: auth for system-to-system FHIR
- Tracking S3 file changes with ETags and LastModified
- How to Get the Status of an AWS Glue Workflow Using boto3
- AWS Glue Job Fails Due to Dependency Version Conflict: How to Fix It
- Distributed systems
- Analytics & BI
- Career & CS
- Data modeling
- Storage
All posts (113)
-
De-identifying FHIR data: HIPAA Safe Harbor, limited data sets and leaks
Dropping name and SSN is not de-identification. Apply HIPAA Safe Harbor to FHIR NDJSON with an allowlist, surrogate keys and a leak check, in Python.
-
Synthea vs SynPUF: picking synthetic healthcare data for pipeline tests
Synthea simulates coherent patients and exports FHIR; SynPUF is perturbed Medicare claims. When to use each, and how to turn Synthea into a messy roster.
-
HL7 v2 ADT feeds: from pipe-delimited events to an encounters table
Parse HL7 v2 ADT messages in plain Python, ACK them over MLLP, and fold admits, discharges and cancellations into one row per hospital visit.
-
Roster change notifications with FHIR Subscriptions (R4 backport)
Stop polling for new roster files. Use the ATR list-change topic and FHIR R4 Subscriptions backport: rest-hook, id-only payloads, a FastAPI receiver.
-
From SSH keys to SMART Backend Services: auth for system-to-system FHIR
Replace long-lived SFTP keys with SMART Backend Services: JWKS, signed JWT assertions, short-lived scoped tokens. Client and FastAPI server in Python.
-
Bulk export and async jobs: serving large rosters with $davinci-data-export
Large rosters don't fit in one response. Implement the FHIR Bulk Data async pattern — kick-off, polling, NDJSON manifest — in FastAPI and httpx.
-
From full replace to deltas: $member-add and $member-remove in FastAPI
Replace last-file-wins rosters with explicit FHIR member-add/remove operations, list status gating, inactive flags and versioned Groups in FastAPI.
-
Modeling a patient roster as a FHIR Group (Da Vinci ATR)
Map a roster CSV to FHIR Group, Patient and Coverage using the Da Vinci ATR profile — with a Python converter and namespaced identifiers.
-
Python datetimes: naive vs aware, date parts, next day and total_seconds
· UpdatedFix 'can't compare offset-naive and offset-aware datetimes', split YYYYMMDD into year/month/day, add a day with timedelta, and why .seconds isn't total_seconds().
-
Python logging: levels, file output, and separate console and file handlers
· UpdatedReplace print() with Python's logging module: levels, basicConfig to a file, and a named logger with DEBUG to file and INFO+ to console (yfinance example).
-
Selecting, dropping and inserting rows in a pandas DataFrame
· UpdatedFilter pandas rows with boolean masks and str.startswith, drop rows by value, reset the index, and add rows with loc or concat now that append() is gone.
-
Retries in Python: from a basic retry loop to exponential backoff for API rate limits
· UpdatedRetry in Python from a basic try/except loop to production: Retry-After, exponential backoff with full jitter, idempotency, urllib3 Retry and tenacity.
-
Selenium vs Beautiful Soup: when to use each, and how to combine them
· UpdatedSelenium drives a browser for JavaScript pages and form clicks; Beautiful Soup parses HTML you already fetched. Selenium 4 examples and a combined workflow.
-
Tracking S3 file changes with ETags and LastModified
· UpdatedDetect changed S3 objects without versioning: read ETag and LastModified with boto3, export an ETag CSV per date prefix, and handle multipart ETags.
-
PostHog across subdomains and projects: identity, multiple instances and client rate limits
· UpdatedOne PostHog project across subdomains with cross_subdomain_cookie, when to send to several projects with named instances, and what client_ingestion_warning means.
-
Working with JSON in Python and pandas: json.load, JSON Lines and read_json
· UpdatedRead and write JSON with Python's json module, clean malformed files, and load JSON arrays or JSON Lines exports into pandas with read_json(lines=True).
-
Batch API Requests in Python: Throughput vs Rate Limit Trade-Off
Push more records through a rate-limited API in Python: concurrency sizing with Little's Law, batch size trade-offs, and an asyncio token bucket with httpx.
-
Comparing Parquet Compression Codecs: Snappy vs ZSTD Benchmark
A reproducible PyArrow benchmark of Parquet codecs on 5M rows: Snappy, LZ4, GZIP and ZSTD levels 1–19. File size, write and read time.
-
Managing OAuth2 Token Rotation in Postman Without Overwriting Environments
Keep OAuth2 access and refresh tokens out of your Postman environments: collection-scoped storage, a pre-request refresh script, and Newman-safe exports.
-
How to Get the Status of an AWS Glue Workflow Using boto3
A Glue workflow can report COMPLETED while its jobs failed. How to poll workflow runs with boto3 and read per-node status from the run graph.
-
AWS Glue Job Fails Due to Dependency Version Conflict: How to Fix It
Your Glue job works locally but fails with ImportError or numpy binary incompatibility. Why it happens and how to pin dependencies against the Glue runtime.
-
Building an AI oracle slot machine with nothing but canvas
A zero-dependency slot machine that generates AI-doom prophecies, decided by a hand of blackjack, rendered as a downloadable PNG. One HTML file, one canvas element, no build step.
-
caveman: cutting Claude's output tokens by 75%
The caveman skill strips filler from Claude responses while preserving technical accuracy — reducing output tokens by ~75% and keeping long sessions inside context limits.
-
diagnose: enforcing the debug loop Claude skips
The diagnose skill enforces a structured debug loop — reproduce, minimise, hypothesise, instrument, fix, regression test — preventing Claude from jumping straight to a proposed solution.
-
grill-me: stress-testing a plan before touching the codebase
The grill-me skill interrogates a proposed plan against the existing domain model before any code is written — surfacing assumptions, naming drift, and design conflicts early.
-
improve-codebase-architecture: review that knows your domain
The improve-codebase-architecture skill runs structured architecture review informed by domain language and ADRs — not generic refactor suggestions.
-
Building a multipage Streamlit app with st.navigation() — the modern way
Streamlit 1.31 added st.navigation() as the modern replacement for the pages/ directory convention. Here's how the new API works and why it's better for anything beyond a simple demo.
-
ABC in Python: What It Is, Where It Comes From, and Why It Exists
When people begin exploring object-oriented design in Python, they eventually encounter this import: from abc import ABC, abstractmethod That usually leads to a natural question: what does ABC mean,
-
Resolving the Node.js Error: Cannot find module jsonwebtoken
When developing backend services with Node.js, especially APIs that implement authentication, it is common to rely on JSON Web Tokens (JWT). One frequent runtime error encountered in this context is:
-
Rebasing vs Creating a New Branch: How to Handle Outdated Feature Branches Correctly
In collaborative software projects, it is common to face the following situation: a feature branch was created some time ago, work was done on it, and meanwhile the main branch continued to evolve.
-
Fixing Cursor Login Issues on Linux (AppImage)
When running Cursor on Linux, especially with the AppImage version, you might encounter a situation where you can’t log in. This usually happens because Cursor stores its session state locally, and
-
Can You Perform Data Grouping Directly with the yFinance API?
When working with financial data, efficient aggregation and analysis are essential for generating meaningful insights. A common question among developers and data analysts is whether the yFinance
-
Handling Python datetime Objects in Amazon DynamoDB
When developing data pipelines or applications that store time-based records in Amazon DynamoDB , developers frequently encounter serialization errors when working with Python's datetime objects.
-
The Origin and Evolution of the DataFrame
When working with data today—whether in Python, R, or distributed computing platforms like Spark—one of the most commonly used structures is the DataFrame . But where did it come from? This post
-
Understanding ORM: Bridging the Gap Between Objects and Relational Databases
In modern software development, working with databases is a fundamental requirement. Most applications need to persist, retrieve, and manipulate data stored in relational databases such as PostgreSQL,
-
Python Decorators: What They Are, How They Work, and Why C Doesn't Have Them
In Python, decorators are a powerful feature for applying common logic to multiple functions without duplicating code. They allow you to extend or modify the behavior of functions, methods, or classes
-
Understanding findOne and findOneAndUpdate in Mongoose: Key Differences and Practical Usage
When working with MongoDB through Mongoose in Node.js, developers frequently encounter two essential methods: findOne and findOneAndUpdate . Both methods perform document lookups, but they serve
-
Resolving 'index.lock' Issue in Git
When working with Git, you may encounter an error preventing you from switching branches or performing other operations. A common issue is the following: fatal: Unable to create '.git/index.lock':
-
Optimizing Queries with Partitioning in Databricks
Partitioning is a crucial optimization technique in big data environments like Databricks. By partitioning datasets, we can significantly improve query performance and reduce computation time. This
-
Calculating Levenshtein Distance in Apache Spark Using a UDF
When working with text data in big data environments, measuring the similarity between strings can be essential. One of the most commonly used metrics for this is the Levenshtein distance , which
-
Creating a PySpark DataFrame for Sentiment Analysis
When working with sentiment analysis, having structured data in a PySpark DataFrame can be very useful for processing large datasets efficiently. In this post, we will create a PySpark DataFrame
-
Automating Payment Calculation in Google Docs Using Apps Script
Introduction Google Apps Script is a powerful tool that allows you to automate tasks within Google Workspace applications, such as Google Docs. In this tutorial, we will create a script that prompts
-
Ranking Products Using Window Functions in PySpark
Introduction Window functions are powerful tools in SQL and PySpark that allow us to perform calculations across a subset of rows related to the current row. In this blog post, we'll explore how to
-
Handling Null Values in Data: Algorithms and Strategies
Null values are a common challenge in data analysis and machine learning. Dealing with them effectively is essential to ensure the reliability of your insights and models. In this post, we’ll explore
-
What Does an Exploratory Data Analysis (EDA) Evaluate?
An Exploratory Data Analysis (EDA) is a critical step in the data analysis process that focuses on evaluating and examining data to uncover its main characteristics. It is performed before delving
-
Grouping Data in PySpark with Aliases for Aggregated Columns
When working with large datasets in PySpark, grouping data and applying aggregations is a common task. In this post, we’ll explore how to group data by a specific column and use aliases for the
-
Extracting Dynamic Content from an iFrame with Selenium in Python
Accessing content inside an iFrame can be tricky, especially when the content is loaded dynamically. In this blog post, we’ll walk through an example of how to navigate an iFrame, click on an
-
How to Rename a Git Branch Locally and Remotely
Renaming Git branches can be necessary when adhering to naming conventions or correcting errors. This guide will walk you through the process of renaming a branch locally and remotely. Scenario: You
-
Troubleshooting Import Errors in Python: A Case Study
Python's modular design allows developers to break their code into smaller, reusable components. However, import errors can often disrupt the flow, especially in complex projects. In this post, we’ll
-
Parsing Complex Data from HTML Tables with Python
When working with web scraping, you often encounter scenarios where HTML content is nested or contains encoded data within JavaScript attributes. This post walks through parsing player statistics from
-
Comparative Investment Analysis of Invesco and Blackstone Using Python
Introduction In this post, we'll explore how to use Python programming to compare the performance of two investment firms, Invesco and Blackstone. Invesco is known for its focus on public asset
-
Comparing Risk-Adjusted Returns Using the Sharpe Ratio in Python
Investors frequently face the challenge of assessing whether an asset's return justifies its risk. This is where the Sharpe Ratio becomes invaluable, providing a measure that accounts for both returns
-
Handling the "ERR_HTTP_HEADERS_SENT" Error in Node.js Express
When building REST APIs with Node.js and Express, one common error that developers encounter is ERR_HTTP_HEADERS_SENT: Cannot set headers after they are sent to the client . This error can be
-
Understanding module.exports in Node.js: Exporting and Importing Modules
In Node.js, organizing your code into reusable, modular components is a key practice for writing maintainable applications. This is done through modules — self-contained blocks of code that can be
-
Handling Deletion of Bootcamps in a Node.js API with Mongoose
In this post, I’ll walk through the process of handling the deletion of bootcamps in a Node.js API using Mongoose. Recently, while working on a project, I encountered a TypeError when attempting to
-
Built-in Functions vs. Object-Oriented Methods
Python strives to be simple and clear, so some operations are implemented as built-in functions , while others are object-specific methods . This distinction arises from the way Python handles
-
How to Simplify a Mongoose Schema in Node.js
When working with Mongoose in Node.js, defining a schema for your models can get repetitive and verbose, especially if you're specifying data types and validation repeatedly. In this post, we’ll look
-
Implementing Query Filtering in Express with Mongoose
In modern API development, providing flexible querying mechanisms is essential to allow clients to filter and retrieve data efficiently. In this post, we'll go over how to implement query filtering
-
Downloading Data from the SEC Website using Python
In this blog post, I’ll show you how to download a JSON file from the U.S. Securities and Exchange Commission (SEC) website using Python. The file contains company tickers, which can be useful for
-
Understanding Idempotency in Python with Simple Examples
Idempotency is a fundamental concept in computing that describes operations which produce the same result no matter how many times they are performed. In this blog post, we’ll explore idempotency
-
Best Practices: Using Direct SQL Queries in CodeIgniter
In this blog post, we'll discuss the pros and cons of using direct SQL queries in CodeIgniter and explore alternatives that enhance security, readability, and maintainability. What is Direct SQL?
-
How to Implement MVC in CodeIgniter to Clean Up Your Views
When building web applications, it's easy to end up with PHP logic mixed directly into your HTML views, especially in smaller projects. However, this can lead to messy, hard-to-maintain code. The
-
Counting Covered Points on a Number Line
Introduction Algorithmic challenges often involve intervals and can initially seem complex. One such problem is determining how many unique points are covered by a set of intervals on a number line.
-
Renaming Modules in Python for Clarity and Accuracy
Renaming modules in Python is an essential practice to improve code clarity and maintainability, especially as projects grow in complexity. Using intuitive and descriptive names helps in quickly
-
Customizing Legends in Seaborn Boxplots: A Guide
Creating clear and informative visualizations is key to effectively communicating data insights. In this post, we will explore how to customize legends in Seaborn boxplots, ensuring that the labels
-
How to Create Age Group Categories in Pandas and Visualize Them with Matplotlib
Data visualization is a key part of data analysis, helping to communicate insights clearly. In this blog post, we'll learn how to categorize age data into specified groups using Pandas and then
-
Extracting the Header from a CSV File in Python
When working with CSV files in Python, it's often necessary to extract the header (the first row of the file) to understand the structure of the data or to perform specific operations on the remaining
-
Handling CSV Files in Python: Writing Specific Rows with Custom Headers
When working with CSV files in Python, you often need to filter and write specific rows to a new file, including handling headers properly. This blog post will guide you through the process using
-
Creating a Pandas DataFrame from a List of Lists
Working with data in Python often involves using pandas, one of the most powerful libraries for data manipulation. A common task is converting a list of lists into a pandas DataFrame. This post will
-
How to Safely Retrieve and Return SQL Query Results in Python
When working with databases in Python, one common task is to count the number of records in a table. This might seem straightforward, but it’s easy to run into errors if the code isn’t structured
-
Understanding the Quality of a Multiple Linear Regression Model: Analyzing SalaryUSD Predictions
In this blog post, we'll dive into the process of analyzing the quality of a multiple linear regression model, specifically focusing on predicting SalaryUSD based on factors like EducationLevel and
-
How to Handle shutil.SameFileError When Copying Files in Python
Introduction Have you ever encountered the shutil.SameFileError while trying to copy files in Python? This error occurs when you attempt to copy a file onto itself, resulting in a failed operation. In
-
Resolving "Same File" Errors in Python When Copying Files with Directory Replication
When working with file management in Python, you might encounter the dreaded "SameFileError" when trying to copy a file using the shutil.copy2() function. This error occurs when Python detects that
-
Adding Numbers Around a Center Element in a 2D Grid in Python
In this post, we'll explore how to manipulate a 2D grid in Python by adding numbers around a specific center element. This is a common problem in various applications, such as implementing a basic
-
How to Convert a SQL SELECT COUNT Query to SQLAlchemy in Python
When working with databases in Python, you might often need to translate raw SQL queries into SQLAlchemy, a powerful ORM (Object-Relational Mapper) that allows you to interact with your database in a
-
How to Optimize a Function for Counting Matching Products in a DataFrame
In this post, we'll walk through how to optimize a function that counts the number of rows in a DataFrame where two specified products are present. The original function, though functional, can be
-
Extracting Specific Text Between Strings Using Python
In this blog post, we'll learn how to extract a specific portion of text between two substrings in a given input string. This technique is useful in various scenarios, such as processing file paths,
-
Handling Errors in Python: Ensuring Successful String Splits
When working with strings in Python, you often need to split them based on a delimiter. While the split method is straightforward, there might be scenarios where the split operation doesn't yield the
-
How to Read a File from a Network Path in Python
In many business and enterprise environments, data is often stored on network drives accessible to multiple users. Python provides several ways to access and read files from these network paths. This
-
Avoiding Duplicate File Copies Based on Content in Python
Introduction When dealing with large datasets, it is common to encounter duplicate files, especially when copying files based on specific criteria. Simply comparing file names or paths isn't
-
Copying Files Containing a Specific Word Using Python
Introduction When working with large datasets or numerous text files, you might find yourself needing to search for files containing specific words or phrases. Automating this task can save a lot of
-
Preserving Directory Structure While Copying Files in Python
Introduction When working with large datasets or numerous text files, it might be necessary to copy files containing specific words to a new destination while preserving the original directory
-
Analyzing Salaries by Country: Using Boxplots to Visualize Median and Mean
Introduction: Understanding salary distributions across different countries is crucial for various economic analyses, market insights, and policy decisions. Boxplots are an effective graphical tool
-
Generating and Uploading Random Data to Azure Blob Storage Using Python
Introduction In today's data-driven world, automating data generation and storage is crucial for various applications, including testing, data analysis, and machine learning. This blog post will guide
-
Creating a Dictionary from a Word and a List in Python
In Python, creating and manipulating dictionaries is a common task. In this post, we'll walk through a simple example of how to write a function that takes a word and a list, and returns a dictionary
-
Extracting Data from Fixed-Width Text Files into Pandas DataFrame
Working with fixed-width text files can be challenging, especially when you need to extract specific fields and transform them into a structured format like a Pandas DataFrame. In this blog post, I'll
-
Avoiding Overwriting and Extra Spaces When Writing to Files in Python
When working with files in Python, it's common to encounter situations where you need to append new lines to an existing file without overwriting its current content. Additionally, managing whitespace
-
How to Print Lines Containing Non-Zero, Non-Dot, and Non-Space Characters in Python
In this blog post, we'll explore a simple yet useful task: printing lines that contain at least one character that is not a zero ( 0 ), a dot ( . ), or a space. This can be particularly handy when
-
Transforming a Matrix by Adding Numbers Around a Specific Value in Python
When working with matrices, we often need to perform transformations that update the values based on certain conditions. In this post, we'll walk through a function that takes a matrix and updates it
-
Ensuring Type Safety in Python Functions
When writing Python functions, ensuring that the parameters are of the correct type is crucial for robust and error-free code. In this post, we'll explore how to enforce type checks in a function to
-
Inserting a Student into a Sorted List in Python
When working with sorted lists in Python, it's essential to ensure that any new elements are added in the correct order. Problem Statement You have a list of student names sorted in alphabetical
-
Filtering and Counting Keys in Python Dictionaries
In this post, we'll explore how to count the keys in a dictionary and filter a dictionary by its values in Python. These are common tasks that can be useful in a variety of situations when working
-
Combining Multiple CSV Files into One with Python
If you work with data, chances are you've encountered situations where you need to merge multiple CSV files into a single file for analysis. Manually combining these files can be time-consuming and
-
How to Aggregate Values by Date and Sum Them in Python
Problem Statement Suppose you have a list of transactions or events, each associated with a date and a numeric value (e.g., sales amount, transaction amount). Your goal is to aggregate these values by
-
Creating Directories in Python
The os Module Python’s os module provides a way to interact with the operating system. It includes functions for creating, removing, and checking the existence of directories and files. In this
-
Pandas Dataframe: apply method
Calculating Discounts, Taxes, and Total Amount in a DataFrame Suppose you have the following data in a DataFrame: Product Price Category 0 A 100 Electronic 1 B 200 Cloth 2 C 150 Electronic 3 D 300
-
Escape sequences in Pyhon
Escape sequences as in C While reading Automate the Boring Stuff with Python: Practical Programming for Total Beginners, I noticed the existence of raw strings. A raw string is created in such a way
-
Dictionary methods: keys(), values(), and items()
In Python, there are three special methods related to dictionaries that are worth mentioning: keys() , values() , and items() . Interestingly, these methods do not return true lists. They cannot be
-
Sweetviz error: .iteritems() → .items()
If you install Sweetviz using the command: pip install sweetviz You're going to have this error because change in the Pandas library. So, up to the new release in Sweetviz you can use the following
-
What is DOM? Why is it important to understand it?
The DOM tree is a crucial concept that needs to be understood and managed in order to make changes to a website. It allows for the application of styles to HTML elements and the addition of
-
Border Radius in CSS
One of the simples project I've found on the internet is change some characteristics of attributes in CSS using a kind of input in a web page. It's a simple project, but always fun. This kind of
-
Python Django Dev To Deployment
After finishing the Udemy Course Python Django Dev to Deployment I would like to list the things I've learned during the process and the things I understand that I need to continue learning, or even,
-
Django Jinja Isn't a thing
I was reading about Jinja and an article on Wikipedia caught my attention: Jinja (template engine) At the beginning I read: Jinja is similar to the Django So, Django Jinja and Jinja projects are
-
Using Google Colab to work from with outside data
On stack overflow there is this question I've neve made to myself: How can I create a website using google colab [closed] I have my code written in colab. I want to convert this into a website where
-
FAKER: Create Unique Random
You have to use: unique.random_int(min=11, max=123) A full example where you can see the creation of a persona is the following: from faker import Faker import pandas as pd fake = Faker() def
-
How to now where is located my current python Virtual enviroment
If you are working in your machine with different virtual env perhaps you wondered "Wait a minute. What environment I'm working on?" There is two ways (I now to know that) Using PIP: pip -V Or using
-
TOX: First steps
Tox is a tool for Python testing. I'm doing my first steps because I found it in the project: Faker, which is: Faker is a Python package that generates fake data for you. Faker Git Hub repository If
-
Is server-side rendering gives more importance to JavaScript?
In the last time, server-side rendering has become more important. I don't know how important. But this gives me a question about future jobs from JavaScript vs other Back end languages like Python.
-
Enviroments in Virtual Env
The importance of using environments As was said in Setting environments in Python it’s important to use environments for your deployment, even if these are side projects or wild repositories. But at
-
Testing in Python: Pytest Vs Unit test
How important are the tests? Testing is one of the most important skills we need to develop once we join the industry. In fact, knowing about testing is something that is not as evaluated as it could
-
Why is it important to know what Environment Variables are?
While learning to avoid hardcoding some keys in my projects, I found the concept of environment variables. I've found this interesting article about this topic here in medium: An Introduction to
-
Setting environments in Python
When we start a project in Python we make the beginner mistake of installing each tool in any place. However, as we advance in our knowledge and looking to improve what we do we start thinking about
-
Assert or AssertEqual. Differences.
Difference Between the statement Asert and AssertEqual in Python