Outils pour utilisateurs

Outils du site


issue200:python

Greetings again, fellow Beings. First, I have to say how happy I am to be part of the 200th issue of Full Circle Magazine. I’ve been a part of the FCM family since issue 27 and I am still proud of it. Here’s to another 100 issues! How many times have you had a great idea for a program, but before you can really get it together, you found that you need some specialized data to actually get it properly programmed and tested? Data like user information, database records, sales data and so on? Sure, many of our programs and utilities can be tested with hand created data and that’s good enough. But sometimes you need a data table with hundreds or thousands of records that have 10 or more fields of realistic data that would take days to create by hand. Enter Faker, a library for Python that does most of the ‘heavy lifting; for you. Of course, you need to install Faker into Python and as usual, we can use pip to do this. $ pip3 install Faker Now that you’ve gotten it installed, let’s look at how it can help you.

Je vous salue à nouveau, chers amis. Tout d'abord, je dois dire à quel point je suis heureux de participer au 200e numéro du magazine Full Circle. Je fais partie de la famille FCM depuis le numéro 27 et j'en suis toujours aussi fier. Je vous souhaite encore 100 numéros !

Combien de fois avez-vous eu une idée géniale pour un programme, mais avant de pouvoir vraiment le mettre au point, vous avez découvert que vous aviez besoin de certaines données spécialisées pour le programmer et le tester correctement ? Des données telles que des informations sur les utilisateurs, des enregistrements de base de données, des données de vente, etc. Bien sûr, nombre de nos programmes et utilitaires peuvent être testés avec des données créées à la main, et c'est déjà bien. Mais parfois, vous avez besoin d'une table de données avec des centaines ou des milliers d'enregistrements comportant 10 champs ou plus de données réalistes qui prendraient des jours à créer à la main.

Voici Faker, une bibliothèque pour Python qui se charge de la plus grande partie du travail à votre place.

Bien sûr, vous devez installer Faker dans Python et, comme d'habitude, nous pouvons utiliser pip pour le faire.

pip3 install Faker

Maintenant que vous l'avez installée, voyons comment elle peut vous aider.

First, we need to import the library and then create an instance of Faker. »> from faker import Faker »> fake = Faker() Now we can use the ‘fake’ instance to get some data. Let’s say we want to get a fake name for a fictitious user. »> fake.name() 'Ruth Duarte' How about an address for our new user Ruth? »> fake.address() '19373 Amanda Manors Suite 530\nWest William, MD 04391' Of course, Ruth will need a phone number and an email address, right? »> fake.phone_number() '+1-888-264-9990×8524' »> fake.ascii_email() 'kristin03@yahoo.com' And Ruth will need a credit card. »> fake.credit_card_full() 'VISA 16 digit\nKevin Smith\n4731880480844912 04/29\nCVC: 849\n'

Tout d'abord, nous devons importer la bibliothèque et créer une instance de Faker.

from faker import Faker
fake = Faker()

Nous pouvons maintenant utiliser l'instance « fake » pour obtenir des données. Disons que nous voulons obtenir un faux nom pour un utilisateur fictif.

fake.name()

'Ruth Duarte'

Et pourquoi pas une adresse pour notre nouvel utilisateur Ruth ?

fake.address()

'19373 Amanda Manors Suite 530\nWest William, MD 04391'

Bien sûr, Ruth aura besoin d'un numéro de téléphone et d'une adresse e-mail, non ?

fake.phone_number()

'+1-888-264-9990×8524'

fake.ascii_email()

'kristin03@yahoo.com'

Et Ruth aura besoin d'une carte de crédit.

fake.credit_card_full()n

'VISA 16 digit\nKevin Smith\n4731880480844912 04/29\nCVC: 849\n'

Let’s not forget that Ruth will probably need to have a car, so we’ll need to give her a license plate. »> fake.license_plate() '780 VZD' That’s fantastic, right? So far, all of this information has been for the U.S. What if you need to have data for the UK? No problem. Just create an instance of Faker using the localization attribute. »> fakeUK=Faker('en_GB') »> fakeUK.phone_number() '+44121 4960479' »> fakeUK.license_plate() 'NL09VVR' What about people who need data for, let’s say, Norway? »> fakeNorway=Faker('no_NO') »> fakeNorway.address() 'Sørensenskrenten 3, 6580 Andersstrøm' »> fakeNorway.address() 'Evensengjerdet 76, 3451 Torillø' »> fakeNorway.phone_number() '94199271'

N'oublions pas que Ruth aura probablement besoin d'une voiture. Nous devrons donc lui donner une plaque d'immatriculation.

fake.license_plate()

'780 VZD'

C'est fantastique, n'est-ce pas ? Jusqu'à présent, toutes ces informations concernaient les États-Unis. Et si vous aviez besoin de données pour le Royaume-Uni ? Aucun problème. Il suffit de créer une instance de Faker en utilisant l'attribut de localisation.

fakeUK=Faker('en_GB')
fakeUK.phone_number()

'+44121 4960479'

fakeUK.license_plate()

'NL09VVR'

Qu'en est-il des personnes qui ont besoin de données pour, disons, la Norvège ?

fakeNorway=Faker('no_NO')
fakeNorway.address()

'Sørensenskrenten 3, 6580 Andersstrøm'

fakeNorway.address()

'Evensengjerdet 76, 3451 Torillø'

fakeNorway.phone_number()

'94199271'

Remember, none of this data is meant to be any more realistic for anything outside of creating dummy data for testing your programs. However, if you are an author, who needs a number of new character names for your newest cozy mystery novel. Let’s say we need 15 people. »> for cntr in range(15): … personname=fake.name() … print(personname) Heidi Lucas Catherine Davis Andrea Williams Sierra Carpenter PhD Tammy Berg Diane Johnson Brandi Brown Jeffrey Flores Kevin Roy Jennifer Leonard Brian Mason Joshua Herrera Eric Mitchell Kelly Park Joseph Harris »> We can also have Faker generate enums, booleans, dictionaries, floats, ints, lists and more by using the python provider. For example, say we need some data that looks and acts like US Currency values. That’s really simple. »> fake.pyfloat(right_digits=2,min_value=200,max_value=10000) 722.58

Rappelez-vous qu'aucune de ces données n'est censée être plus réaliste que la création de données fictives pour tester vos programmes. Toutefois, si vous êtes un auteur et que vous avez besoin d'un certain nombre de nouveaux noms de personnages pour votre dernier roman policier… Disons que nous avons besoin de 15 personnes.

for cntr in range(15) :

… personname=fake.name() … print(personname) Heidi Lucas Catherine Davis Andrea Williams Sierra Carpenter PhD Tammy Berg Diane Johnson Brandi Brown Jeffrey Flores Kevin Roy Jennifer Leonard Brian Mason Joshua Herrera Eric Mitchell Kelly Park Joseph Harris

Nous pouvons également demander à Faker de générer des enums, des booléens, des dictionnaires, des flottants, des entiers, des listes et bien d'autres choses encore en utilisant le fournisseur python. Par exemple, disons que nous avons besoin de données qui ressemblent et agissent comme des valeurs de monnaie américaine. C'est très simple.

fake.pyfloat(right_digits=2,min_value=200,max_value=10000)

722.58

The pyfloat method has the following syntax… pyfloat(left_digits=None, right_digits=None, positive=False, min_value=None, max_value=None) You can check the documentation for more detailed information on the python provider as well as all the “standard” providers as well as specialized providers provided by the Faker community. So far, everything we’ve done has been in the Python terminal. But reality is that we will need to write a program to do some heavier data faking. Let’s assume we have to create a user structure that has the following fields… User ID, User Name, User Email, User password, User phone number, Available balance, frozen balance and a status flag. In addition, we need to create, say 30 of these user data groups to test the program we are writing. Of course, we need to import Faker and a couple of things… from faker import Faker import pprint import random

La méthode pyfloat a la syntaxe suivante…

pyfloat(left_digits=None, right_digits=None, positive=False, min_value=None, max_value=None)

Vous pouvez consulter la documentation pour obtenir des informations plus détaillées sur le fournisseur python ainsi que sur tous les fournisseurs « standard » et les fournisseurs spécialisés fournis par la communauté Faker.

Jusqu'à présent, tout ce que nous avons fait l'a été dans le terminal Python. Mais la réalité est que nous devrons écrire un programme pour effectuer des falsifications de données plus lourdes.

Supposons que nous devions créer une structure d'utilisateur avec les champs suivants…

ID de l'utilisateur, nom de l'utilisateur, courriel de l'utilisateur, mot de passe de l'utilisateur, numéro de téléphone de l'utilisateur, solde disponible, solde bloqué et indicateur d'état.

En outre, nous devons créer, disons, 30 de ces groupes de données utilisateur pour tester le programme que nous sommes en train d'écrire. Bien sûr, nous devons importer Faker et quelques autres éléments…

from faker import Faker import pprint import random

Now, let’s create a function that will create our user data for us and return it as a dictionary (top right). Now that we have all the data we need for this simple exercise, we’ll create a dictionary (right) and return it. So, here (top right) is what the data looks like. I’ll only show a couple of the user dictionary data sets instead of the 30 that we created. You can find the Faker distribution homepage at https://github.com/joke2k/faker and the very nice documentation at https://faker.readthedocs.io/en/master/ That’s it for this month. I hope your December has been nice and happy and your New Year will bring happiness and prosperity. May the best day of your 2023 be the worst day of your 2024! Until next time, as always; stay safe, healthy, positive and creative!

Créons maintenant une fonction qui créera nos données utilisateur et les renverra sous la forme d'un dictionnaire (en haut à droite).

Maintenant que nous avons toutes les données dont nous avons besoin pour cet exercice simple, nous allons créer un dictionnaire (à droite) et le renvoyer.

Voici donc (en haut à droite) à quoi ressemblent les données. Je ne montrerai que quelques ensembles de données du dictionnaire de l'utilisateur au lieu des 30 que nous avons créés.

Vous pouvez trouver la page d'accueil de la distribution de Faker à l'adresse https://github.com/joke2k/faker et la très belle documentation à l'adresse https://faker.readthedocs.io/en/master/.

C'est tout pour ce mois-ci. J'espère que votre mois de décembre a été agréable et heureux et que la nouvelle année vous apportera bonheur et prospérité. Que votre meilleur jour en 2023 soit votre pire jour en 2024 !

Jusqu'à la prochaine fois, comme toujours, restez en sécurité, en bonne santé, positifs et créatifs !

Traduction des lignes noires de l'encadré de la page 24

Now, let’s setup the structures and variables we will need to call our function. Maintenant, paramétrons les structures et les variables qui nous sont nécessaires pour appeler la fonction.

And finally we’ll use pprint to print out the data in the terminal window. Et, enfin, nous utiliserons pprint pour afficher les données sur l'écran du terminal.

issue200/python.txt · Dernière modification : 2024/01/02 16:26 de d52fr