Python

7374 readers
53 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
151
152
 
 

Hi,

I'm already using

from smtplib import SMTP_SSL
from email.message import EmailMessage

To send emails.

Now I would like to be able to encrypt them with the public key of the recipient. ( PublicKey.asc )

an A.I provide me this

import smtplib
from email.message import EmailMessage
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

# Load the ECC public key from the .asc file
with open('recipient_public_key.asc', 'rb') as key_file:
    public_key_bytes = key_file.read()
public_key = ec.EllipticCurvePublicKey.from_public_bytes(
    ec.SECP384R1(),
    public_key_bytes
)

# Create the email message
msg = EmailMessage()
msg.set_content('This is the encrypted email.')
msg['Subject'] = 'Encrypted Email'
msg['From'] = 'you@example.com'
msg['To'] = 'recipient@example.com'

# Encrypt the email message using the ECC public key
nonce = bytes.fromhex('000102030405060708090a0b0c0d0e0f')
cipher = AESGCM(public_key.public_key().secret_key_bytes)
ciphertext = cipher.encrypt(nonce, msg.as_bytes(), None)

# Send the encrypted email
server = smtplib.SMTP('smtp.example.com')
server.send_message(msg, from_addr='you@example.com', to_addr='recipient@example.com')
server.quit()

# Save the encrypted email to a file
with open('encrypted_email.bin', 'wb') as f:
    f.write(ciphertext)

I like the approach, only one "low level" import cryptography

but the code seem wrong. if the body has been encrypted as ciphertext I don't see this one included while sending the email.

How are you doing it ? or do you have good tutorial, documentations ? because I found nothing "pure and simple" meaning not with of unnecessary stuff.

Thanks.

153
154
155
7
submitted 10 months ago* (last edited 10 months ago) by gukkey@programming.dev to c/python@programming.dev
 
 

I am trying to follow this tutorial (Announcing py2wasm: A Python to Wasm compiler · Blog · Wasmer) and run py2wasm but I am getting this weird problem.

First is that I believe py2wasm might be just an executable like other pip packages I install, or a bat file. (I am fairly new to python and I just want to convert a python code to wasm). But when I head over to C:\Users\USER\AppData\Local\Programs\Python\Python312\Scripts where the pip packages are located, I can't seem to find any file related to py2wasm.

Running dir C:\Users\USER\AppData\Local\Programs\Python\Python312\Lib\site-packages\py2wasm* to check any related files about the py2wasm folder only leads to this

Directory: C:\Users\USER\AppData\Local\Programs\Python\Python312\Lib\site-packages

Mode LastWriteTime Length Name

***

d----- 04-10-2024 19:54 py2wasm-2.6.2.dist-info

Also, before you could ask yeah I could run other pip packages such as yt-dlp.

156
157
158
159
160
62
Developing with Docker (danielquinn.org)
submitted 10 months ago* (last edited 10 months ago) by danielquinn@lemmy.ca to c/python@programming.dev
 
 

I've been writing code professionally for 24 years, 15 of which has been Python and 9 years of that with Docker. I got tired of running into the same complications every time I started a new job, so I wrote this. Maybe you'll find it useful, or it could even start a conversation, but this post has been a long time coming.

Update: I had a few requests for a demo repo as a companion to this post, so I wrote one today. It includes a very small Django demo user Docker, Compose, and GitLab CI.

161
162
 
 

A library for creating fully typed and declarative API clients, quickly and easily.

What would an API client with this library look like?

For a single API endpoint over HTTP GET, it could look something like this:

from dataclasses import dataclass
import quickapi


# An example type that will be part of the API response
@dataclass
class Fact:
    fact: str
    length: int


# What the API response should look like
@dataclass
class ResponseBody:
    current_page: int
    data: list[Fact]


# Now we can define our API
class MyApi(quickapi.BaseApi[ResponseBody]):
    url = "https://catfact.ninja/facts"
    response_body = ResponseBody

And you would use it like this:

response = MyApi().execute()

# That's it! Now `response` is fully typed (including IDE support) and conforms to our `ResponseBody` definition
assert isinstance(response.body, ResponseBody)
assert isinstance(response.body.data[0], Fact)

It also supports attrs or pydantic (or dataclasses as above) for your model/type definitions, including validation and types/data conversion.

I have a lot more examples (e.g. POST requests, query string params, authentication, error handling, model validation and conversion, multiple API endpoints) on the repo's README.

I've shared this one here before but it's been a while and I've added a lot of features since.

Github repo: https://github.com/martinn/quickapiclient

163
164
165
40
Python in Excel – Available Now (techcommunity.microsoft.com)
submitted 11 months ago by neme@lemm.ee to c/python@programming.dev
166
167
168
0
submitted 11 months ago* (last edited 11 months ago) by slyuser@lemmy.ml to c/python@programming.dev
169
12
submitted 11 months ago* (last edited 11 months ago) by TheButtonJustSpins to c/python@programming.dev
 
 

New to CircuitPython, this feels like it should work according to the docs but it prints six Falses. Any ideas?

#!/usr/bin/env python
import board
import digitalio
import time

class body_controller:

  def __init__(self):
    SWDIO = board.D5
    self._reset_pin = digitalio.DigitalInOut(SWDIO)
    print(self._reset_pin.value)
    self._reset_pin.switch_to_output(True)
    print(self._reset_pin.value)

  def turn_on(self):
    print(self._reset_pin.value)
    self._reset_pin.value = False
    print(self._reset_pin.value)
    time.sleep(1)
    print(self._reset_pin.value)
    self._reset_pin.value = True
    print(self._reset_pin.value)

body = body_controller()
time.sleep(1)
body.turn_on()
time.sleep(1)
170
171
 
 

Ive learned a decent bit of python from a trade school I was in and I am really interested in learning more and eventually do freelance work

And I'm looking for advice on ensuring I know enough to do that as well as some advice getting started

172
 
 

In this article we will explore some lesser known, but interesting and useful corners of Python standard library.

...

To provide more powerful containers for storing data in memory Python ships a collection module ...

Python has with keyword to create context manager that will auto-cleanup things within lexical scope ...

To address this problem, Python ships decimal module that allows us represent decimal numbers as Python objects with operator overloading ...

Likewise, we can run into problem when dealing with fractions - one third is not exactly equal to 0.333… Python ships with fractions module to represent them as Python objects with operator overloading ...

The standard Python installation ships with dis module that takes Python code units (e.g. a function) and disassembles the code into a kind of pseudo-assembler ...

Python statistics module provides a small toolkit of statistical algorithms for relatively simple applications where it is an overkill to use Pandas or Numpy: standard deviation, several kinds of average of numeric data, linear regression, correlation, normal distribution and others ...

To make this easier Python ships a webbrowser module with simple API to make a browser show a page ...

To make this less terrible Python ships zipapp module with CLI tool and Python API to package Python code into single file packages ...

173
 
 

Hi, folks!

I'd like to set up my emacs with lsp-mode and lsp-ui, but I am finding myself in some analysis paralysis. Ruling out the Palantir language server because it's deprecated and because it's Palantir, that still leaves me with five language server recommendations from lsp-mode.

Anybody have any opinions they'd like to share? Any really bad experiences I should avoid? How do I configure your favorite? (Feel free to assume I know very little about configuring emacs.)

If it makes a difference, I am a poetry user and a religious mypy --strict user.

Thanks in advance!

174
 
 

I'm currently doing Dr. Charles Severence's lessons on FreeCodeCamp to try to learn Python3. I'm on lesson exercise 02_03 and confused about multiplying floating-point and integer values.

The goal is to write a Python program multiplying hours worked by pay rate to come up with a pay quantity.

This is the code I wrote:

h = input("Enter hours: ")
r = input("Enter pay rate: ")
p = float(h) * r

I got a traceback error, and the video said the correct way to solve said error was change Line 3 from p = float(h) * r to p = float(h) * float(r).

However, what I'm confused about is why would I need to change r to a floating-point value when it's already a floating-point value (since it'd be a currency value like 5.00 or something once I typed it in per the input() command*?

What am I missing here?

 


*I can't remember: are the individual commands in a python line called "commands"?

 

 


Edit: Wrote plus signs in my post here instead of asterisks. Fixed.

 


EDIT: Thanks to @Labna@lemmy.world and @woop_woop@lemmy.world. I thought that the input() function was a string until the end-user types something in upon being prompted, and then becomes a floating-point value or integer value (or stays a string) according to what was typed.

This is incorrect: the value is a string regardless of what is typed unless it is then converted to another type.

175
 
 

I read some articles about using a virtual environment in Docker. Their argument are that the purpose of virtualization in Docker is to introduce isolation and limit conflicts with system packages etc.

However, aren't Docker and Python-based images (e.g., python:*) already doing the same thing?

Can someone eli5 this whole thing?

view more: ‹ prev next ›