Tech C**P
15 subscribers
161 photos
9 videos
59 files
304 links
مدرس و برنامه نویس پایتون و لینوکس @alirezastack
Download Telegram
Have you had a chance to work with Git? If so, did you know that you can work with your git repository from within python script?

GitPython python library does exactly this job:

http://gitpython.readthedocs.io/en/stable/

#python #git #push #pull #GitPython
سوال نرمش ذهن :)

میخواهیم یک دنباله از اعداد را به دو دسته تقسیم کنیم:
فرض کنید ورودی به شما nعدد میدهد، نام این لیست از اعداد را aبگذاریم.
میخواهیم aرا به دو لیست bو cتقسیم کنیم که اولا اعضای bو cبا یکدیگر اشتراک نداشته باشند،
ثانیا هر عضو از aدر یکی از لیست های bیا cباشد. مقدار مجموع اعداد لیست bرا Bو مقدار مجموع
اعضای لیست cرا Cنامگذاری میکنیم. میخواهیم این بخش بندی طوری صورت گرفته باشد که مقدار
B-Cبیشینه باشد.
ورودی:
ابتدا یک عدد nبه عنوان تعداد اعداد لیست aبه شما داده میشود، سپس در nخط بعدی اعضای
لیست aبه عنوان ورودی داده میشود: a1, a2, …, an
1 ≤ n ≤ 100
-100 ≤ a1, a2,…, an ≤ 100
خروجی:
مقدار B-Cرا چاپ کنید.
مثال:
Input
4 1 2 -3 0
Output
10
توضیح: بخش بندی بهینه به این صورت میشود:
b = {4, 1, 2, 0} وc = (-3}

در صورت رسیدن به جواب، پاسخ رو به @Pickle_Ali ارسال کنید.
سلام و خداقوت به همراهان عزیز کانال،
🔴 بزودی در کنار پادکستهای بسیار زیبای Masters of Scale دوره های آموزشی MongoDB مقدماتی قرار داده می شود (زبان اصلی)

با ما همراه باشید :)
If you use json.dumps() in order to write a json into a file, it will be wriiten all in one line. You can do more with dumps(). You can pretty print into the file with indentation using indent parameter:

dumped_json = json.dumps(json.loads(content), indent=4)


You can do more and sort json keys! To do that pass sort_keys to dumps function like below:

dumped_json = json.dumps(json.loads(content), indent=4, sort_keys=True)

#python #json #dumps #indent #sort #sort_keys
Few days ago we talk about gitPython to work with git inside of python. The code below is a sample that would do all routine tasks like pulling and pushing or commit.

1- Initiate git object in python by providing path:

from git import Repo
repo = Repo(repo_path)


2- If you want to pull results from git repo:

repo.git.pull('origin', 'refs/heads/dev')


3- Let's say you want to set username and email for git author:

config = repo.config_writer()
config.set_value("user", "email", author_email)
config.set_value("user", "name", author_name)


4- Now to add a specific file to staged:

index = repo.index
index.add([file_path])


5- Commit the staged file with a message:

index.commit(commit_message)


6- The final step is to push to a remote repo:

repo.git.push('origin', 'refs/heads/dev')

#python #git #gitPython #pull #push #author
In case you want to serve static files in your website in nginX, you can add a new location directive to your server block that corresponds to your website:

server {

# your rest of codes in server block...

location / {

location ~ \.(css|ico|jpg|png) {
root /etc/nginx/www/your_site/statics;
}

# your rest of codes...

}
}

This is it, whether it is a uwsgi proxy, fpm, etc.

#web_server #nginx #static #location #serve
Netflix has open sourced his container management system called Titus written in Go Lang. You can see documentation of it here:

- https://netflix.github.io/titus/

Source code and Docs:

- https://github.com/Netflix/titus

#container_orchestration #docker #container #golang #go #netflix #titus #aws
If you have installed mysql server and want to install MYSQL-python package, you may encounter the below error like me:

EnvironmentError: mysql_config not found


The solution is to install libmysqlclient-dev:

sudo apt-get install libmysqlclient-dev


If you have installed MariaDB then:

sudo apt-get install libmariadbclient-dev

#mysql #mysql_config #MYSQLpython
If you have installed google-api-python-client and got below error on authentication:

No crypto library available

You need to install PyCrypto using pip or PyOpenSSL.

You can also do:

sudo pip install PyOpenSSL --upgrade

#python #google_api_python_client
If you have mongoDB as your database and you query on DB from an external network, make sure you have SSL in place. By not using SSL everyone can evesdrop on the network data which is transmitted in between.

Read the below article to set SSL on server side:

- https://docs.mongodb.com/manual/tutorial/configure-ssl/

Now in order to set SSL=True in mongo python driver head over to link below to read more on:

- http://api.mongodb.com/python/current/examples/tls.html

#mongodb #ssl #tls #pymongo
If you want to make an exact copy of a table from another database into a target database in mySQL you could do like below:

create table new_table like target_database.target_table

The above command will create a table named new_table like target_table from target_database database.

#mysql #database #create_table #table #copy_table
If you want to disable mouse in vim 8 in new Debian, put the below line in your ~/.vimrc:

set mouse=c

It just kills me when I want to work with vim with mouse enabled!

#linux #debian #vim #mouse_enabled
An interesting scenario in Python

If you have list of numbers like below:

numbers= ["+98121434", "+9821322", "+986241234"]


Now let's say you want to check a partial number like 121434, or 98121434 or +98121434 to see if it is inside of the list. What
would you do?

It's clear that you cannot do something like:

# YOU CANNOT DO THIS!
if number in numbers:
pass


So to check all the list element and also check the partial number we can do as below:

if any(partial_number in s for s in numbers):
pass


We have explained any before enough. Check previous posts for any and all.


#python #any #for