English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
এই নথিটি স্বয়ংক্রিয়ভাবে অনুবাদ করা হয়েছে। যদি অনুবাদে কোনো ত্রুটি থাকে তবে অনুগ্রহ করে প্রকল্পে একটি পুল রিকোয়েস্ট খুলুন এবং অনুবাদিত ফাইলটি docs/{ISO 639-1 Code}.md এ যোগ করুন।
আপনি অক্টোবর ২০২৩ পর্যন্ত ডেটা নিয়ে প্রশিক্ষিত।
ফেকার স্টোরেজ একটি উচ্চ-প্রদর্শনশীল পিএইচপি প্যাকেজ যা বড় পরিমাণের নকল ডেটা ফাইলগুলি দক্ষতার সাথে তৈরি এবং সংরক্ষণ করার জন্য ডিজাইন করা হয়েছে। এটি সমান্তরালতা মাথায় রেখে তৈরি করা হয়েছে, এটি Swoole বা PCNTL ব্যবহার করে হাজার হাজার ফাইল সমান্তরালে তৈরি করে, যা লোড টেস্টিং, উন্নয়ন পরিবেশ এবং স্টোরেজ সিস্টেম বেঞ্চমার্কিংয়ের জন্য আদর্শ।
প্যাকেজটি বিভিন্ন ফাইল প্রকার তৈরি করার জন্য একটি সাবলীল এপিআই প্রদান করে যার মধ্যে রয়েছে ছবি (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; // ১০টি সমান্তরাল কর্মী সহ ১০০০ 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 require defectivecode/faker-storage
সর্বোত্তম পারফরম্যান্সের জন্য, Swoole এক্সটেনশন ইনস্টল করুন:
pecl install swoole
প্যাকেজটি স্বয়ংক্রিয়ভাবে Swoole ব্যবহার করবে যদি এটি উপলব্ধ থাকে, অন্যথায় PCNTL এ ফিরে যাবে।
সব জেনারেটর একই প্যাটার্ন অনুসরণ করে:
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();
ফেকার স্টোরেজ স্টোরেজ বিমূর্ততার জন্য লীগ ফ্লাইসিস্টেম ব্যবহার করে:
use League\Flysystem\Filesystem;use League\Flysystem\Local\LocalFilesystemAdapter; // স্থানীয় স্টোরেজ$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage')); Faker::make(Png::class) ->toDisk($filesystem) ->generate();
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.pngFaker::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) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->withAlpha(true) // আলফা/ট্রান্সপারেন্সি চ্যানেল সক্রিয় করুন ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Jpg; Faker::make(Jpg::class) ->width(800, 1920) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Gif; Faker::make(Gif::class) ->width(800, 1920) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->withAlpha(true) // আলফা/ট্রান্সপারেন্সি চ্যানেল সক্রিয় করুন ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Bmp; Faker::make(Bmp::class) ->width(800, 1920) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Webp; Faker::make(Webp::class) ->width(800, 1920) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->withAlpha(true) // আলফা/ট্রান্সপারেন্সি চ্যানেল সক্রিয় করুন ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Avif; Faker::make(Avif::class) ->width(800, 1920) // ৮০০-১৯২০px এর মধ্যে র্যান্ডম প্রস্থ ->height(600, 1080) // ৬০০-১০৮০px এর মধ্যে র্যান্ডম উচ্চতা ->withAlpha(true) // আলফা/ট্রান্সপারেন্সি চ্যানেল সক্রিয় করুন ->grid(5) // ঐচ্ছিক: ৫x৫ সিমেট্রিক প্যাটার্ন তৈরি করুন ->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) // প্রতি ফাইলে ৫-১০ অনুচ্ছেদ ->sentences(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) // ৫-১০ কলাম ->rows(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) // ১KB - ১MB ->toDisk($filesystem) ->generate();
RFC822-সম্মত ইমেইল ফাইল তৈরি করুন:
use DefectiveCode\Faker\Generators\Email; Faker::make(Email::class) ->paragraphs(3, 5) // ইমেইল বডিতে অনুচ্ছেদ ->sentences(2, 4) // প্রতি অনুচ্ছেদে বাক্য ->withAttachment(Png::class, 1, 3) // ১-৩ পিএনজি সংযুক্তি যোগ করুন ->toDisk($filesystem) ->generate();
তৈরি ইমেইলগুলিতে অন্তর্ভুক্ত:
To: র্যান্ডম নাম এবং ইমেইলFrom: র্যান্ডম নাম এবং ইমেইলSubject: র্যান্ডম বাক্যDate: বর্তমান টাইমস্ট্যাম্পMessage-ID: বীজের উপর ভিত্তি করে নির্ধারিত আইডিজেনারেটর ক্লাস নাম বা ইনস্ট্যান্স ব্যবহার করে ফাইল সংযুক্ত করুন:
use DefectiveCode\Faker\Generators\Email;use DefectiveCode\Faker\Generators\Png;use DefectiveCode\Faker\Generators\Pdf; Faker::make(Email::class) ->withAttachment(Png::class, 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 tomorrowDate: Fri, 03 Jan 2026 10:30:00 +0000Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>Content-Type: multipart/mixed; boundary="----=_Part_123" ------=_Part_123Content-Type: text/plain; charset=utf-8Content-Transfer-Encoding: quoted-printable Lorem ipsum dolor sit amet, consectetur adipiscing elit... ------=_Part_123Content-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;}
আপনি অক্টোবর ২০২৩ পর্যন্ত ডেটা নিয়ে প্রশিক্ষিত।
এই পদ্ধতিগুলি সব 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 এবং অন্যান্য অনলাইন সম্পদগুলি আপনার সেরা বাজি।
একটি ওপেন সোর্স প্রকল্প পরিচালনার বাস্তবতা হল আমরা প্রতিটি রিপোর্ট করা বাগ বা বৈশিষ্ট্য অনুরোধ অবিলম্বে সমাধান করতে পারি না। আমরা নিম্নলিখিত ক্রমে সমস্যাগুলিকে অগ্রাধিকার দিই:
যে বাগগুলি আমাদের প্রদত্ত পণ্যগুলিকে প্রভাবিত করে সেগুলি সর্বদা আমাদের শীর্ষ অগ্রাধিকার হবে। কিছু ক্ষেত্রে, আমরা শুধুমাত্র সেই বাগগুলি সমাধান করতে পারি যা আমাদের সরাসরি প্রভাবিত করে।
আপনি যদি একটি বাগ চিহ্নিত করে থাকেন এবং একটি সমাধান পেয়ে থাকেন, দয়া করে একটি পুল অনুরোধ জমা দিন। আমাদের পণ্যগুলিকে প্রভাবিত করে এমন সমস্যাগুলির পরে, আমরা এই সম্প্রদায় চালিত সমাধানগুলিকে পরবর্তী সর্বোচ্চ অগ্রাধিকার দিই। একবার পর্যালোচনা এবং অনুমোদিত হলে, আমরা আপনার সমাধানটি একত্রিত করব এবং আপনার অবদানকে কৃতিত্ব দেব।
উল্লিখিত বিভাগগুলির বাইরে থাকা সমস্যাগুলির জন্য, আপনি তাদের সমাধানের জন্য অর্থায়ন করতে পারেন। প্রতিটি খোলা সমস্যা একটি অর্ডার ফর্মের সাথে সংযুক্ত থাকে যেখানে আপনি আর্থিকভাবে অবদান রাখতে পারেন। আমরা প্রদত্ত অর্থের পরিমাণের উপর ভিত্তি করে এই সমস্যাগুলিকে অগ্রাধিকার দিই।
যখন এর সম্প্রদায় সক্রিয় থাকে তখন ওপেন সোর্স উন্নতি লাভ করে। এমনকি আপনি যদি বাগগুলি ঠিক না করেন, কোড উন্নতি, ডকুমেন্টেশন আপডেট, টিউটোরিয়াল বা সম্প্রদায় চ্যানেলে অন্যদের সহায়তার মাধ্যমে অবদান রাখার কথা বিবেচনা করুন। আমরা সবাইকে, একটি সম্প্রদায় হিসাবে, ওপেন সোর্স কাজকে সমর্থন করতে সহায়তা করার জন্য অত্যন্ত উৎসাহিত করি।
পুনরায় উল্লেখ করতে, DefectiveCode আমাদের প্রদত্ত পণ্যগুলিকে প্রভাবিত করে এমন বাগ, সম্প্রদায়ের পুল অনুরোধ এবং সমস্যাগুলির জন্য প্রাপ্ত আর্থিক সহায়তার উপর ভিত্তি করে বাগগুলিকে অগ্রাধিকার দেবে।
কপিরাইট © ডিফেক্টিভ কোড, এলএলসি। সর্বস্বত্ব সংরক্ষিত
এই সফটওয়্যার এবং সংশ্লিষ্ট ডকুমেন্টেশন ফাইলের ( "সফটওয়্যার" ) একটি কপি প্রাপ্ত যে কোন ব্যক্তিকে বিনামূল্যে অনুমতি দেওয়া হল, কোন প্রকার সীমাবদ্ধতা ছাড়াই সফটওয়্যারটি ব্যবহার, কপি, পরিবর্তন, একত্রিত, প্রকাশ, বিতরণ, সাবলাইসেন্স এবং/অথবা সফটওয়্যারের কপি বিক্রি করার অধিকার সহ, এবং যাদের কাছে সফটওয়্যারটি সরবরাহ করা হয়েছে তাদেরকে তা করার অনুমতি দেওয়া হল, নিম্নলিখিত শর্তসাপেক্ষে:
উপরের কপিরাইট নোটিশ এবং এই অনুমতি নোটিশটি সফটওয়্যারের সকল কপি বা উল্লেখযোগ্য অংশে অন্তর্ভুক্ত থাকতে হবে।
সফটওয়্যারটি "যেমন আছে" ভিত্তিতে সরবরাহ করা হয়েছে, কোন প্রকার ওয়ারেন্টি ছাড়াই, প্রকাশিত বা অন্তর্নিহিত, বিশেষ করে বিক্রয়যোগ্যতা, নির্দিষ্ট উদ্দেশ্যে উপযুক্ততা এবং অ-লঙ্ঘনের ওয়ারেন্টি সহ। কোন অবস্থাতেই লেখক বা কপিরাইট ধারকগণ কোন দাবি, ক্ষতি বা অন্য কোন দায়বদ্ধতার জন্য দায়ী থাকবে না, চুক্তি, টর্ট বা অন্যথায়, সফটওয়্যার বা সফটওয়্যারের ব্যবহার বা অন্য কোন লেনদেন থেকে উদ্ভূত বা সম্পর্কিত।
আপনি অক্টোবর ২০২৩ পর্যন্ত ডেটা নিয়ে প্রশিক্ষিত।