Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

भाषांतर चेतावणी

हे दस्तऐवज स्वयंचलितपणे अनुवादित केले गेले आहे. जर अनुवादात त्रुटी असतील तर कृपया पुल विनंती प्रकल्पावर उघडा आणि अनुवादित फाइल docs/{ISO 639-1 Code}.md मध्ये जोडा.

आपण ऑक्टोबर 2023 पर्यंतच्या डेटावर प्रशिक्षित आहात.

परिचय

फेकर स्टोरेज हे एक उच्च-प्रदर्शन PHP पॅकेज आहे जे मोठ्या प्रमाणात बनावट डेटा फाइल्स कार्यक्षमतेने तयार आणि संग्रहित करण्यासाठी डिझाइन केलेले आहे. समांतरता लक्षात घेऊन तयार केलेले, हे Swoole किंवा PCNTL चा वापर करून हजारो फाइल्स समांतर तयार करते, ज्यामुळे लोड चाचणी, विकास वातावरण आणि स्टोरेज सिस्टम बेंचमार्किंगसाठी हे आदर्श आहे.

हे पॅकेज विविध फाइल प्रकार तयार करण्यासाठी एक प्रवाही API प्रदान करते ज्यामध्ये प्रतिमा (PNG, JPG, GIF, BMP, WEBP, AVIF), मजकूर फाइल्स, CSV फाइल्स, बायनरी डेटा, आणि RFC822-अनुरूप ईमेल्स समाविष्ट आहेत. प्रत्येक जनरेटर बीजित केल्यावर निर्धारक आउटपुट तयार करतो, ज्यामुळे वातावरणांमध्ये पुनरुत्पादक चाचणी डेटा सुनिश्चित होतो.

मुख्य वैशिष्ट्ये

उदाहरण

use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Png;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// 10 समांतर कामगारांसह 1000 PNG प्रतिमा तयार करा
Faker::make(Png::class)
->width(800, 1920)
->height(600, 1080)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->basePath('images')
->count(1000)
->concurrency(10)
->seed(42)
->generate();
 
// CSV फाइल्स तयार करा
use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10)
->rows(100, 500)
->delimiter(',')
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(50)
->generate();
 
// संलग्नकांसह ईमेल्स तयार करा
use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5)
->sentences(2, 4)
->withAttachment(Png::class, 1, 3)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(100)
->generate();

स्थापना

Composer द्वारे पॅकेज स्थापित करा:

composer require defectivecode/faker-storage

आवश्यकताएँ

ऐच्छिक अवलंबित्वे

सर्वोत्तम कार्यक्षमतेसाठी, Swoole विस्तार स्थापित करा:

pecl install swoole

पॅकेज उपलब्ध असल्यास स्वयंचलितपणे Swoole वापरेल, अन्यथा PCNTL वर फॉलबॅक करेल.

वापर

मूलभूत कार्यप्रवाह

सर्व जनरेटर खालील नमुन्याचे अनुसरण करतात:

  1. जनरेटरसह एक Faker उदाहरण तयार करा
  2. जनरेटर कॉन्फिगर करा (पर्यायी)
  3. संचयन गंतव्य सेट करा
  4. समांतरता आणि संख्या कॉन्फिगर करा
  5. फाइल्स तयार करा
use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Text;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
Faker::make(Text::class)
->paragraphs(5, 10) // जनरेटर-विशिष्ट कॉन्फिगरेशन
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))
->basePath('documents') // फाइल्स /storage/documents/ मध्ये असतील
->count(100) // 100 फाइल्स तयार करा
->concurrency(4) // 4 कामगार वापरा
->seed(123) // निर्धारक आउटपुटसाठी
->generate();

संचयन कॉन्फिगरेशन

Flysystem वापरून

Faker संचयन League Flysystem साठी संचयन अब्स्ट्रॅक्शन वापरते:

use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// स्थानिक संचयन
$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage'));
 
Faker::make(Png::class)
->toDisk($filesystem)
->generate();

AWS S3 संचयन

use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
 
$client = new S3Client([
'credentials' => [
'key' => 'your-key',
'secret' => 'your-secret',
],
'region' => 'us-east-1',
'version' => 'latest',
]);
 
$adapter = new AwsS3V3Adapter($client, 'your-bucket-name');
$filesystem = new Filesystem($adapter);
 
Faker::make(Png::class)
->toDisk($filesystem)
->basePath('uploads/images')
->generate();

डिस्क पर्याय

फाइलसिस्टम अडॅप्टरला अतिरिक्त पर्याय पास करा:

Faker::make(Png::class)
->toDisk($filesystem)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
'CacheControl' => 'max-age=31536000',
])
->generate();

समांतरता कॉन्फिगरेशन

concurrency() पद्धतीसह समांतर कार्यवाही नियंत्रित करा:

// 10 कामगार थ्रेड्स/प्रक्रिया वापरा
Faker::make(Png::class)
->concurrency(10)
->generate();
 
// Swoole-विशिष्ट: थ्रेड्स आणि प्रत्येक थ्रेडसाठी कोरूटिन्स सेट करा
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8) // 4 कामगार, प्रत्येक 8 कोरूटिन्स
->generate();

फाइल नामकरण

डीफॉल्ट नामकरण

डीफॉल्टनुसार, फाइल्स UUID v4 वापरून नामांकित केल्या जातात:

// तयार करते: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
Faker::make(Png::class)->generate();

अंगभूत नाव जनरेटर

use DefectiveCode\Faker\NameGenerator;
 
// UUID-आधारित (डीफॉल्ट)
NameGenerator::setDefault('uuid'); // तयार करते: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
 
// अनुक्रमिक क्रमांक
NameGenerator::setDefault('sequence'); // तयार करते: 1.png, 2.png, 3.png, ...

कस्टम नामकरण

फाइल नावे सानुकूलित करण्यासाठी एक क्लोजर प्रदान करा:

use DefectiveCode\Faker\NameGenerator;
 
// कस्टम क्लोजर
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "custom-{$completedFiles}-{$seed}.png";
})
->generate();
 
// दिनांक-आधारित नामकरण
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return date('Y/m/d') . "/image-{$completedFiles}.png";
})
->generate();

पुनरुत्पादनक्षमतेसाठी बीज

समान फाइल्स तयार करण्यासाठी बीज सेट करा:

Faker::make(Png::class)
->seed(42)
->count(10)
->generate();

प्रत्येक फाइलला बेस बीज आणि फाइल इंडेक्समधून व्युत्पन्न केलेले एक अद्वितीय निर्धारक बीज मिळते.

जनरेटर

प्रतिमा जनरेटर

सर्व प्रतिमा जनरेटर परिमाण आणि गुणवत्ता कॉन्फिगरेशनला समर्थन देतात.

पीएनजी

use DefectiveCode\Faker\Generators\Png;
 
Faker::make(Png::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->withAlpha(true) // अल्फा/पारदर्शकता चॅनेल सक्षम करा
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

जेपीजी

use DefectiveCode\Faker\Generators\Jpg;
 
Faker::make(Jpg::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

जीआयएफ

use DefectiveCode\Faker\Generators\Gif;
 
Faker::make(Gif::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->withAlpha(true) // अल्फा/पारदर्शकता चॅनेल सक्षम करा
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

बीएमपी

use DefectiveCode\Faker\Generators\Bmp;
 
Faker::make(Bmp::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

वेबपी

use DefectiveCode\Faker\Generators\Webp;
 
Faker::make(Webp::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->withAlpha(true) // अल्फा/पारदर्शकता चॅनेल सक्षम करा
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

एव्हीआयएफ

use DefectiveCode\Faker\Generators\Avif;
 
Faker::make(Avif::class)
->width(800, 1920) // 800-1920px दरम्यान यादृच्छिक रुंदी
->height(600, 1080) // 600-1080px दरम्यान यादृच्छिक उंची
->withAlpha(true) // अल्फा/पारदर्शकता चॅनेल सक्षम करा
->grid(5) // ऐच्छिक: 5x5 सममितीय नमुना तयार करा
->toDisk($filesystem)
->generate();

यादृच्छिक प्रतिमा

यादृच्छिक प्रतिमा स्वरूप तयार करते:

use DefectiveCode\Faker\Generators\RandomImage;
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(false) // यादृच्छिक: AVIF, BMP, GIF, JPEG, PNG, WEBP
->toDisk($filesystem)
->generate();
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(true) // यादृच्छिक: AVIF, GIF, PNG, WEBP
->toDisk($filesystem)
->generate();

मजकूर जनरेटर

पॅराग्राफसह साधे मजकूर फाइल्स तयार करा:

use DefectiveCode\Faker\Generators\Text;
 
Faker::make(Text::class)
->paragraphs(5, 10) // प्रति फाइल 5-10 पॅराग्राफ
->sentences(3, 6) // प्रति पॅराग्राफ 3-6 वाक्ये
->toDisk($filesystem)
->generate();

उत्पादन उदाहरण:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

सीएसव्ही जनरेटर

यादृच्छिक डेटासह सीएसव्ही फाइल्स तयार करा:

use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10) // 5-10 स्तंभ
->rows(100, 500) // 100-500 पंक्ती
->delimiter(',') // स्तंभ विभाजक
->enclosure('"') // फील्ड संलग्नक
->escape('\\') // एस्केप वर्ण
->eol("\n") // ओळ समाप्ती
->toDisk($filesystem)
->generate();

उत्पादन उदाहरण:

"John Doe","john@example.com","555-1234","New York","Engineer"
"Jane Smith","jane@example.com","555-5678","Los Angeles","Designer"
"Bob Johnson","bob@example.com","555-9012","Chicago","Manager"

बायनरी जनरेटर

यादृच्छिक बायनरी डेटा तयार करा:

use DefectiveCode\Faker\Generators\Binary;
 
Faker::make(Binary::class)
->length(1024, 1048576) // 1KB - 1MB
->toDisk($filesystem)
->generate();

ईमेल जनरेटर

RFC822-अनुरूप ईमेल फाइल्स तयार करा:

use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5) // ईमेल बॉडीमध्ये पॅराग्राफ
->sentences(2, 4) // प्रति पॅराग्राफ वाक्ये
->withAttachment(Png::class, 1, 3) // 1-3 पीएनजी संलग्नक जोडा
->toDisk($filesystem)
->generate();

ईमेल हेडर्स

उत्पादित ईमेल्समध्ये समाविष्ट आहे:

संलग्नकांसह ईमेल

जनरेटर वर्ग नावे किंवा उदाहरणे वापरून फाइल्स संलग्न करा:

use DefectiveCode\Faker\Generators\Email;
use DefectiveCode\Faker\Generators\Png;
use DefectiveCode\Faker\Generators\Pdf;
 
Faker::make(Email::class)
->withAttachment(Png::class, 1, 3) // 1-3 पीएनजी संलग्नक
->generate();
 
// कॉन्फिगर केलेल्या जनरेटर उदाहरणाचा वापर करून संलग्न करा
$pngGenerator = new Png(Png::getDefaultConfig());
$pngGenerator->width(400, 800)->height(300, 600);
 
Faker::make(Email::class)
->withAttachment($pngGenerator, 2, 5)
->generate();

उत्पादन उदाहरण:

To: John Doe <john.doe@example.com>
From: Jane Smith <jane.smith@example.com>
Subject: Important meeting tomorrow
Date: Fri, 03 Jan 2026 10:30:00 +0000
Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>
Content-Type: multipart/mixed; boundary="----=_Part_123"
 
------=_Part_123
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
 
------=_Part_123
Content-Type: image/png; name="attachment.png"
Content-Disposition: attachment; filename="attachment.png"
Content-Transfer-Encoding: base64
 
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
------=_Part_123--

प्रगत वापर

सानुकूल जनरेटर

Generator इंटरफेस लागू करून आपले स्वतःचे जनरेटर तयार करा:

use DefectiveCode\Faker\Configs\Config;
use DefectiveCode\Faker\Concerns\SetsSeed;
use DefectiveCode\Faker\Generators\Generator;
use DefectiveCode\Faker\Concerns\PreparesFaker;
 
class MyCustomGenerator implements Generator
{
use PreparesFaker;
use SetsSeed;
 
public function __construct(public Config $config) {}
 
public static function getDefaultConfig(): Config
{
return new MyCustomConfig([
'contentType' => 'application/x-custom',
'nameGenerator' => NameGenerator::default('extension'),
]);
}
 
public function generate(): mixed
{
// येथे आपली जनरेशन लॉजिक
$data = $this->faker->randomElement(['foo', 'bar', 'baz']);
 
$stream = fopen('php://temp', 'w+');
fwrite($stream, $data);
 
return $stream;
}
}
 
// आपला सानुकूल जनरेटर वापरा
Faker::make(MyCustomGenerator::class)
->toDisk($filesystem)
->generate();

कॉन्फिगरेशन क्लासेस

प्रत्येक जनरेटर Config विस्तारित करणाऱ्या कॉन्फिगरेशन क्लासचा वापर करतो:

use DefectiveCode\Faker\Configs\Config;
 
class MyCustomConfig extends Config
{
public int $minValue = 1;
public int $maxValue = 100;
}

कार्यक्षमता टिप्स

  1. स्वूल वापरा: सर्वोत्तम कार्यक्षमतेसाठी स्वूल विस्तार स्थापित करा
  2. सहकार्य ट्यून करा: CPU कोरशी जुळणारे थ्रेड काउंट कार्यक्षमतेसाठी जुळवा
  3. बॅच ऑपरेशन्स: अनेक लहान रनच्या ऐवजी मोठ्या बॅचेस तयार करा
  4. स्टोरेज स्थान: अपलोड करण्यापूर्वी तात्पुरत्या फाइल्ससाठी जलद स्टोरेज (SSD, स्थानिक डिस्क) वापरा
  5. नेटवर्क I/O: S3 वापरताना, बँडविड्थ वापर वाढवण्यासाठी सहकार्य वाढवा

आपण ऑक्टोबर 2023 पर्यंतच्या डेटावर प्रशिक्षित आहात.

कॉन्फिगरेशन

ग्लोबल कॉन्फिगरेशन पद्धती

हे पद्धती सर्व Faker उदाहरणांवर उपलब्ध आहेत:

make(string $generator): Faker

निर्दिष्ट जनरेटरसह नवीन Faker उदाहरण तयार करा:

Faker::make(Png::class)

toDisk(Filesystem $filesystem): Faker

साठवण गंतव्य सेट करा (आवश्यक):

Faker::make(Png::class)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))

basePath(string $basePath): Faker

फाइल सिस्टममधील बेस पथ सेट करा:

Faker::make(Png::class)
->basePath('images/uploads') // फाइल्स /storage/images/uploads/ मध्ये साठवल्या जातील

count(int $count): Faker

निर्माण करण्यासाठी फाइल्सची संख्या सेट करा:

Faker::make(Png::class)
->count(1000)

concurrency(int $threads, ?int $coroutines = null): Faker

समांतर कार्यान्वयन कॉन्फिगर करा:

// मूलभूत समांतरता
Faker::make(Png::class)
->concurrency(4)
 
// Swoole-विशिष्ट: थ्रेड्स आणि कोरूटिन्स
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8)

seed(int $seed): Faker

निर्धारित जनरेशनसाठी बीज सेट करा:

Faker::make(Png::class)
->seed(42)

nameGenerator(Closure $generator): Faker

फाइल नामकरण सानुकूलित करा:

Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "file-{$completedFiles}.png";
})

diskOptions(array $diskOptions): Faker

फाइल सिस्टम अडॅप्टरला पर्याय पास करा:

Faker::make(Png::class)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
])

generate(): void

फाइल जनरेशन कार्यान्वित करा:

Faker::make(Png::class)->generate();

समर्थन मार्गदर्शक तत्त्वे

आमचे ओपन सोर्स पॅकेज निवडल्याबद्दल धन्यवाद! कृपया या समर्थन मार्गदर्शक तत्त्वांची तपासणी करण्यासाठी एक क्षण घ्या. ते तुम्हाला आमच्या प्रकल्पाचा अधिकाधिक फायदा घेण्यास मदत करतील.

समुदाय चालित समर्थन

आमचा ओपन-सोर्स प्रकल्प आमच्या अद्भुत समुदायाद्वारे चालवला जातो. तुम्हाला प्रश्न असतील किंवा मदतीची गरज असेल तर StackOverflow आणि इतर ऑनलाइन संसाधने तुमचे सर्वोत्तम पर्याय आहेत.

बग्स आणि वैशिष्ट्य प्राधान्यक्रम

ओपन-सोर्स प्रकल्पाचे व्यवस्थापन करण्याची वास्तविकता म्हणजे आम्ही प्रत्येक नोंदवलेल्या बग किंवा वैशिष्ट्य विनंतीला त्वरित संबोधित करू शकत नाही. आम्ही खालील क्रमाने समस्यांना प्राधान्य देतो:

1. आमच्या सशुल्क उत्पादनांवर परिणाम करणारे बग्स

आमच्या सशुल्क उत्पादनांवर परिणाम करणारे बग्स नेहमीच आमचे सर्वोच्च प्राधान्य असतील. काही प्रकरणांमध्ये, आम्ही फक्त आमच्यावर थेट परिणाम करणारे बग्स संबोधित करू शकतो.

2. समुदाय पुल विनंत्या

तुम्ही बग ओळखला आहे आणि तुमच्याकडे उपाय आहे, कृपया पुल विनंती सबमिट करा. आमच्या उत्पादनांवर परिणाम करणाऱ्या समस्यांनंतर, आम्ही या समुदाय-चालित दुरुस्त्यांना पुढील सर्वोच्च प्राधान्य देतो. एकदा पुनरावलोकन आणि मंजूर झाल्यानंतर, आम्ही तुमचे समाधान एकत्र करू आणि तुमच्या योगदानाचे श्रेय देऊ.

3. आर्थिक समर्थन

उल्लेख केलेल्या श्रेणींमधील समस्यांसाठी, तुम्ही त्यांच्या निराकरणासाठी निधी देण्याचा पर्याय निवडू शकता. प्रत्येक उघड्या समस्येशी ऑर्डर फॉर्म लिंक केलेला आहे जिथे तुम्ही आर्थिक योगदान देऊ शकता. आम्ही दिलेल्या निधीच्या रकमेच्या आधारे या समस्यांना प्राधान्य देतो.

समुदाय योगदान

जेव्हा त्याचा समुदाय सक्रिय असतो तेव्हा ओपन सोर्स फुलतो. जरी तुम्ही बग्स दुरुस्त करत नसाल, तरी कोड सुधारणा, दस्तऐवज अद्यतने, ट्यूटोरियल्स किंवा समुदाय चॅनेलमध्ये इतरांना मदत करून योगदान देण्याचा विचार करा. आम्ही सर्वांना, एक समुदाय म्हणून, ओपन-सोर्स कामाला समर्थन देण्यासाठी प्रोत्साहित करतो.

पुन्हा सांगायचे तर, DefectiveCode आमच्या सशुल्क उत्पादनांवर, समुदाय पुल विनंत्यांवर आणि समस्यांसाठी प्राप्त झालेल्या आर्थिक समर्थनावर आधारित बग्सना प्राधान्य देईल.

परवाना - एमआयटी परवाना

कॉपीराइट © डिफेक्टिव कोड, एलएलसी. सर्व हक्क राखीव

या सॉफ्टवेअरची प्रत आणि संबंधित दस्तऐवजीकरण फाइल्स ("सॉफ्टवेअर") प्राप्त करणार्‍या कोणत्याही व्यक्तीस, शुल्क न आकारता, खालील अटींवर, सॉफ्टवेअरचा वापर, प्रत, सुधारणा, विलीन, प्रकाशित, वितरण, उप-परवाना, आणि/किंवा सॉफ्टवेअरच्या प्रती विकण्याचे अधिकार देण्यात येत आहेत, आणि ज्यांना सॉफ्टवेअर पुरवले जाते त्यांना तसे करण्याची परवानगी देण्यात येत आहे:

वरील कॉपीराइट नोटीस आणि ही परवानगी नोटीस सॉफ्टवेअरच्या सर्व प्रती किंवा महत्त्वपूर्ण भागांमध्ये समाविष्ट केली जावी.

सॉफ्टवेअर "जसे आहे" प्रदान केले जाते, कोणत्याही प्रकारची हमी न देता, व्यक्त किंवा अप्रत्यक्ष, यामध्ये पण मर्यादित नाही, विक्रीयोग्यता, विशिष्ट उद्देशासाठी उपयुक्तता आणि उल्लंघन न होण्याच्या हमींचा समावेश आहे. कोणत्याही परिस्थितीत लेखक किंवा कॉपीराइट धारक कोणत्याही दावे, नुकसान किंवा इतर जबाबदारीसाठी जबाबदार राहणार नाहीत, करार, अत्याचार किंवा अन्यथा, सॉफ्टवेअरमधून किंवा सॉफ्टवेअरच्या वापरातून किंवा इतर व्यवहारांमधून उद्भवणार्‍या.

आपण ऑक्टोबर 2023 पर्यंतच्या डेटावर प्रशिक्षित आहात.