تبریک! شما در ژورنالی که سلیب رئیس آن است، استخدام شدهاید. اما سلیب که بسیار سختگیر است، در همان ابتدای کار به شما یک وظیفه محول کرده است. شما باید برنامهای برای اعتبارسنجی اولیهٔ مقالاتی که نویسندگان به ژورنال برای چاپ ارسال کردهاند، بنویسید. فرمت این اعتبارسنجی به شرح زیر است:
## تابع `extract_paper`
### عملکرد تابع
در ورودی آدرس فایل مقاله و سایز فونت را می گیرد. باید بتواند با باز کردن و خواندن فایل مقاله، فیلدهای مختلف آن را استخراج کرده و یک دیکشنری از آن بسازد. فرمت مقالهها به شکل زیر است:
![توضیح تصویر](https://s4.uupload.ir/files/68er_i5al.png)
در نهایت این تابع باید یک دیکشنری با کلیدهای زیر برگرداند.
+ **عنوان `title`:** از نوع str است.
+ **چکیده `abstract`:** از نوع str است.
+ **کلمات کلیدی `keywords`:** از نوع list است.
+ **مقدمه `introduction`:** از نوع str است.
+ **بدنه `body`:** از نوع str است.
+ **نتیجهگیری `conclusion`:** از نوع str است.
+ **مراجع `references`:** از نوع list است.
+ **تعداد کلمات کل مقاله `words_count`:** از نوع int است.
+ **تعداد صفحات کل مقاله `pages_count`:** از نوع int است.
### اعتبارسنجیها
+ چکیده نباید بیش از ۱۵۰ کلمه باشد. درغیراینصورت یک Exception با پیام `The abstract section can't be more than 150 words` پرتاب میشود.
+ تعداد کلمات کلیدی نباید بیش از ۵ باشد. درغیراینصورتت یک Exception با پیام `You can't put more than 5 keywords` پرتاب میشود.
+ کلمات کلیدی باید بر اساس حروف الفبا مرتب شده باشند. درغیراینصورت یک Exception با پیام `Keywords are not sorted` پرتاب میشود.
+ طول کل مقاله نباید بیش از ۹ صفحه باشد. درغیراینصورت یک Exception با پیام `The whole paper can't be more than 9 pages` پرتاب میشود.
### نحوهٔ شمارش کلمات
جداکنندهٔ کلمات از یکدیگر، کاراکترهای «فاصله» و «خط جدید» هستند.
### نحوهٔ شمارش صفحات
محاسبهٔ تعداد صفحات از طریق تعداد کلمات و اندازهٔ فونت صورت میگیرد. هر ۵۱۲ کلمه با اندازهٔ فونت ۱۶، یک صفحه را تشکیل میدهند. اگر اندازهٔ فونت بزرگتر شود، یک صفحه شامل تعداد کلمات کمتری خواهد بود و اگر اندازهٔ فونت کوچکتر شود، یک صفحه شامل تعداد کلمات بیشتری میشود.
بهطور مثال فرض کنید یک مقاله ۵۱۲ کلمه باشد. اگر اندازهٔ فونت ۱۶ باشد، این مقاله یک صفحه است و اگر اندازهٔ فونت ۳۲ باشد، این مقاله ۲ صفحه خواهد بود زیرا هر صفحه شامل ۲۵۶ کلمه میشود.
## نکات
+ میتوانید فایل اولیهٔ این سؤال را از [این لینک](/contest/assignments/51094/download_problem_initial_project/174127/) دریافت کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.