stages:
data_ingestion:
cmd: python src/pipelines/data_ingestion_pipeline.py
deps:
- src/constants/paths.py
- src/utils/helpers.py
- src/entity/components_config_entity.py
- src/components/data_ingestion.py
- data/raw
outs:
- artifacts/data_ingestion/
data_validation:
cmd: python src/pipelines/data_validation_pipeline.py
deps:
- src/constants/paths.py
- src/utils/helpers.py
- src/utils/handler.py
### Supress warnings when displaying numeric columns with NaN or very very big or small values
```py
import warnings
with warnings.catch_warnings():
warnings.simplefilter("ignore", RuntimeWarning)
display(....)
```
### System wide display settigns
```py
import pandas as pd
pd.set_option("display.max_rows", 5)
```
### Scoped display settings
```py
import pandas as pd
with pd.option_context("display.max_rows", 10):
display(....)
```/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var maxSubarraySum = function(nums, k) {
let n = nums.length;
// Step 1: Build prefix sums
let prefix = new Array(n + 1).fill(0);
for (let i = 0; i < n; i++) {
prefix[i + 1] = prefix[i] + nums[i];
}
// Step 2: Track the minimum prefix sum for each remainder class
// Initialize with Infinity (we'll minimize later)
let minPrefix = new Array(k).fill(Infinity);
// Step 3: Result **Typage Structurel** (ou *Structural Typing*) en Python.
Utiliser `isinstance(x, ABC)` revient à poser la question : **"Peu m'importe qui sont tes parents (héritage), est-ce que tu sais faire ce job (comportement) ?"**
C'est la pratique la plus robuste pour valider des entrées sans coupler votre code à des types précis comme `list` ou `dict`.
Voici les 3 "Contrats" les plus courants que vous devez maîtriser en Data Engineering, du plus laxiste au plus strict.
### 1\. Le Contrat "Je veux jusimport arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
if arcpy.Describe(lyr).dataType == "FeatureLayer":
count = arcpy.GetCount_management(lyr)
print(lyr.name, count[0])
_______ JEANSON ANCHETA_______
🌎
💻💸 Fresh Logs Pricing 💸💻
🔐 UK/US Logs / Clean Bank Drops (GBP/$)
💰 10K GBP/$ = 250
💰 12K GBP/$ = 300
💰 16K GBP/$ = 350
💰 20K GBP/$ = 500
💰 30K GBP/$ = 800
🛡️ Verified • HQ Access • Fast Delivery
💬 DM for escrow or direct 🔥
WESTERN UNION / MONEY GRAM/BANKS LOGINS/BANK TRANFERS/PAYPAL TRANSFERS WORLDWIDE/CASHAPP/ZELLLE/APPLE PAY/SKRILL/VENMO TRANSFER
Telegram:@JeansonTooL https://t.me/+2__ynBAtFP00M2Fk
https://t.me/+CsF2t7## 1\. Comprendre Jupytext (Le traducteur temps réel)
Le problème fondamental des Notebooks (`.ipynb`), c'est leur format.
* **Ce que vous voyez :** Du code, du texte et des graphiques.
* **Ce que l'ordinateur voit :** Un fichier **JSON** énorme et illisible.
Si vous ouvrez un `.ipynb` avec un éditeur de texte, vous verrez ceci :
```json
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"source": [
"import numpy as np\n"
]
}
...
}
```
C'est fragile. Une vir# VPN STUFF
### TAILSCALE
##### INTERFACE METRIC
By default TS interface is set to 5 which might be lower than your main ETH interface, causins some request to be sent to TS.
##### DNS / MAGIC DNS
In TS admin console, check how DNS is handled, by default magic DNS is enabled and can cause some issue (see above ), you can add other domain in the webbase admin console, or disable magicDNS interialy.
🔥 Issue with WSL2 for windows, as the tailscale Interface gets pickup for the netresolv.conf in lRewriteEngine On
RewriteCond %{REQUEST_URI} !(^/aaa/bbb/)
RedirectMatch 301 ^/aaa/bbb/ https://aaa/bbb
RewriteRule ^(.*)$ https://www.aaa [R=301,L]# WSL TIPS & TRICKS
## INSTALL
in cmd prompt / powershell as admin:
`wsl --install`
## GPU
-> [guide](https://joelognn.medium.com/installing-wsl2-pytorch-and-cuda-on-windows-11-65a739158d76)
## NETWORK
with tailscale installed my autogenerated config was erronous, no internet access ( DNS resolve issues)
Bit of a bitch at this stage ! doinga fresh -reinstall
`sudo nano /etc/resolv.conf`\
add / correct the nameserver entry:\
`nameserver 8.8.8.8`
We would also want to stop automatic generation/**
* @param {number[][]} grid
* @param {number} k
* @return {number}
*/
var numberOfPaths = function(grid, k) {
const MOD = 1e9 + 7; // modulus for large answers
const m = grid.length; // number of rows
const n = grid[0].length; // number of columns
// Initialize a 3D DP array:
// dp[i][j][r] = number of ways to reach (i,j) with remainder r
// Dimensions: m x n x k
let dp = Array.from({ length: m }, () =>
Array.from({ length: n }, () =>
import streamlit as st
from datetime import datetime
import time
from src.langchain_ext.document_loader import get_openai_api_key
from src.langchain_ext.prompts import get_chat_prompt
from src.langchain_ext.memory import get_memory
from src.langchain_ext.chains import get_chat_chain
# Page configuration
st.set_page_config(
page_title="AI Chatbot",
page_icon="🤖",
layout="wide",
initial_sidebar_state="expanded"
)
# Custom CSS for better UI
st.markdown("""
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from typing import Optional
import uvicorn
from src.langchain_ext.document_loader import get_openai_api_key
from src.langchain_ext.prompts import get_chat_prompt
from src.langchain_ext.memory import get_memory
from src.langchain_ext.chains import get_chat_chain
# Initialize FastAPI app
app = FastAPI(
title="AI Chatbot API",
description="API for co<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UnitVZone — Tech Guides & APK Tutorials</title>
<meta name="description" content="UnitVZone provides APK tutorials, safe downloads, and tech guides for Android devices.">
<style>
body {
font-family: Arial, sans-serif;
background: #0A1A2F;
color: #fff;
margin: 0;
padding: 0;
line-height: 1.6;
# Jupyter Notebook Notes
## Différences entre `%` et `!`
C'est une distinction fondamentale qui sépare le bricoleur du développeur qui comprend son environnement d'exécution. Si vous confondez les deux, vous aurez des erreurs de chemin (path) ou d'installation de packages invisibles qui vous rendront fou.
Voici la différence technique brutale :
### 1\. Le `!` (Shell Escape) : Le Touriste
Le point d'exclamation dit au Notebook : **"Passe cette commande au système d'exploitation (Bash/Linux), # copy files into folders
find . -type f -exec bash -c 'mkdir -p "${1%/*}/$(date -r "$1" "+%Y")"; cp "$1" "${1%/*}/$(date -r "$1" "+%Y")/"' _ {} \;
# copy files with rsync to keep the file times
find . -type f -exec bash -c 'mkdir -p "${1%/*}/$(date -r "$1" "+%Y")"; rsync -t "$1" "${1%/*}/$(date -r "$1" "+%Y")/"' _ {} \;
#move files into folders
find . -type f -exec bash -c 'mkdir -p "${1%/*}/$(date -r "$1" "+%Y")"; mv "$1" "${1%/*}/$(date -r "$1" "+%Y")/"' _ {} \;