Python Daily
2.57K subscribers
1.48K photos
53 videos
2 files
38.9K links
Daily Python News
Question, Tips and Tricks, Best Practices on Python Programming Language
Find more reddit channels over at @r_channels
Download Telegram
[AF] Delete table in Flask, using flask-sqlalchemy?

So, I want to delete a table in my database, this being a table called Comments as I know it will only make for a terribly scaled flask app. do I just delete the code for the model in models.py and make a migration?

Here is my models.py if anyone is interested:

https://github.com/ModoUnreal/dopenet/blob/master/app/models.py

/r/flask
https://redd.it/8conl9
What's the difference between Statsmodel's Poisson and GLM with Poisson family?

For Statsmodels (imported as sm), I do not know what the difference is between

sm.Poisson(Y,X)

vs

sm.GLM(Y,X,family=sm.families.Poisson())

Also, another oddity is that with the former I have to use fit_regularize but with the latter, if I try to fit_regularize, I will get None when I try to get a summary.


/r/pystats
https://redd.it/8crlvg
Updating fields in another model with custom save

Hello,

I have a few models with custom save definitions. I am looking to update a field in one model when I save another model based on a date comparison between the two. Unfortunately, I can't get this to work. I was wondering if someone could check out my code and see what I'm doing wrong.

models.py

class Person(models.Model):
first_name = models.CharField(max_length=250)
relation_name = models.CharField(max_length=250, blank=True)
last_name = models.CharField(max_length=250)
village = models.ForeignKey(Village)
earliest_case = models.ForeignKey('Case', null=True, blank=True, related_name='person_to_earliest_case+')
latest_case = models.ForeignKey('Case', null=True, blank=True, related_name='person_to_latest_case+')

def save(self, *args, **kwargs):
try:
earliest_litigation = Case.objects.filter(litigants__person=self).order_by('session__date')[0]
except:
earliest_litigation = None
try:
earliest_pledge = Case.objects.filter(litigants__pledges__giver=self).order_by('receiver__case__session__date')[0]
except:
earliest_pledge = None

if earliest_litigation and earliest_pledge:
if earliest_litigation.session.date > earliest_pledge.session.date:
self.earliest_case = earliest_litigation
elif earliest_pledge.receiver.session.date > earliest_litigation.session.date:
self.earliest_case = earliest_pledge
elif earliest_litigation:
self.earliest_case = earliest_litigation
elif earliest_pledge:
self.earliest_case = earliest_pledge
else:
self.earliest_case = None

try:
latest_litigation = Case.objects.filter(litigants__person=self).order_by('-session__date')[0]
except:
latest_litigation = None
try:
latest_pledge = Case.objects.filter(litigants__pledges__giver=self).order_by('-receiver__case__session__date')[0]
except:
latest_pledge = None

if latest_litigation and latest_pledge:
if latest_litigation.session.date > latest_pledge.session.date:
self.latest_case = latest_litigation
elif latest_pledge.session.date > latest_litigation.session.date:
self.latest_case = latest_pledge
elif latest_litigation:
self.latest_case = latest_litigation
elif latest_pledge:
self.latest_case = latest_pledge
else:
self.latest_case = None
super(Person, self).save(*args, **kwargs)



class Litigant(models.Model):

person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name='cases')
case = models.ForeignKey(Case, on_delete=models.CASCADE, related_name='litigants')
role = models.ForeignKey(Role, related_name='litigant_role')

def save(self, *args, **kwargs):
super(Litigant, self).save(*args, **kwargs)
person = Person.objects.get(pk=self.person)
earliest_litigation = person.earliest_case
latest_litigation = person.latest_case
if earliest_litigation:
if self.case.session.date < earliest_litigation.session.date:
person.earliest_case = self.case
person.save(update_fields=['earliest_case'])
if latest_litigation:
if self.case.session.date > latest_litigation.session.date:
person.latest_case = self.case
person.save(update_fields=['latest_case'])
else:
person.earliest_case = self.case
person.latest_case = self.case
person.save(update_fields=['earliest_case', 'latest_case'])


When I save a `Person` model instance it updates the `earliest` and `last` case references just fine. However, when I add them as a `Litigant` it doesn't up
date their `earliest` or `last` case references as I was hoping the custom save method in `Litigant` model would do.

Am I missing something obvious here?

Thanks in advance for any help!

/r/django
https://redd.it/8cslex
Jupyter Lab RKernel doesn't start. [Troubleshooting]

Hi, I am new to jupyter and also jupyter lab.
Installed it and it seems to work fine until i try to start the RKernel.
This is the error output from commandline.

the icu package is installed and the libicui18n.so file is located in /usr/lib/libicui18n.so

Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/johannes/R/x86_64-pc-linux-gnu-library/3.4/stringi/libs/stringi.so':
libicui18n.so.60: cannot open shared object file: No such file or directory
Calls: :: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

In the console I start and work with R normally.
Python Kernel works fine.

I am using Arch Linux...
Is this a known beginner issue?

/r/IPython
https://redd.it/8cwby7
What's everyone working on this week?

Tell /r/python what you're working on this week! You can be bragging, grousing, sharing your passion, or explaining your pain. Talk about your current project or your pet project; whatever you want to share.


/r/Python
https://redd.it/8cwslw
Jupyter and Scala

On jupyter website there is information about support for Scala. Has any of you used such a kernel?

/r/IPython
https://redd.it/8cutic
Django Celery: Run automated Task once for each item in database

Working on a school project that requires sending an email to each person that created a page once per day, but needs to do it for each page and I'm just not sure where I need to go from here.

From Tasks.py

from celery.task.schedules import crontab
from celery.decorators import periodic_task
from .Listing import Listing
from celery.utils.log import get_task_logger
from datetime import datetime

logger = get_task_logger(__name__)


@periodic_task(run_every=(crontab(hour="10", minute="10")))
def run_daily_emails():
Listing.daily_hit_count()


From Listing.py

def daily_hit_count(self):

send_mail('Daily Hit Count!', get_templet('templates/realestate/HitCountEmail.html').render(
Context({
'MLSNumber': self.MLSNumber,
'dailyHitCount': self.dailyHitCount,
'totalHitCount': self.totalHitCount
})
), 'AutoPoshPlace@gmail.com', [self.listing_agent.email],
fail_silently=False)

self.dailyHitCount = 0


I need this to iterate through for every listing in the database, but I'm not sure how to do that.

/r/django
https://redd.it/8cx7y2
Django Admin Page Routing to Different Urls

Hi,

Whenever I try to connect to my admin page on my local computer at localhost:8000/admin it tries to re-route me to a different page localhost:8000/admin/profile_html. My urlpatterns are as follows:

main_app:
urlpatterns = [
path('farms/', include('farms.urls', namespace='farms')),
path('admin/', admin.site.urls),
]

farm_app:

app_name = 'farms'
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
path('form/', views.profile_form, name='profile_form'),
path('profile/', views.profile, name='profile'),

# Registration Urls
path('login/', views.login, name='login'),
path('signup/', views.signup, name='signup'),

]
Would anyone know why Django tries to do this? Thanks!

/r/django
https://redd.it/8d0557
Modern Django: Part 3: Creating an API and integrating with React
http://v1k45.com/blog/modern-django-part-3-creating-an-api-and-integrating-with-react/

/r/django
https://redd.it/8d1oxw
[AF] How does the User model in Flask-Blogging work?

I pushed myself to learn more Flask and completed all of [Miguel Grinberg's epic Flask tutorial](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world). Everything there made a lot of sense, and the rationale was all laid out clearly for why and how you'd construct things the way you do.

Now, I'm trying to apply that knowledge to DIY'ing a personal blog with [Flask-Blogging](http://flask-blogging.readthedocs.io/en/latest/). I keep running into the same error:

"sqlalchemy.exc.InvalidRequestError: Table 'user' is already defined for this MetaData instance."

I recognize this isn't StackOverflow, so I'm not looking to resolve this error as much as ensure I have the right context for what I'm trying to build.

# My Questions
1. Flask-Blogging notes that there are ways to use multiple databases via SQLAlchemy. Should the Blogging tools be in a separate database from the rest of the application? I understood that to be relevant to a site with multiple functions, but for a standalone blog I thought I could put it all into one app.
2. Is this a case of a circular database import or importing it twice? db.create_all() is something I'm still grappling with.
3. Flask-Blogging notes there are i[ssues with tables being rewritten in Alembic version 0.3.0 and earlier](https://flask-blogging.readthedocs.io/en/latest/#useful-tips). I am using version Alembic 0.9.9 and Flask-Blogging 1.0.2. I've tried both with their fix and without, to no effect.

Here's my code, which is a mashup of both. Note that Flask-Blogging offers some specific tips on using Flask-SQLAlchemy as well as Alembic (via Flask-Migrate).



###__init__.py

from flask import Flask, Markup
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
from config import Config
from flask_blogging import SQLAStorage, BloggingEngine


app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
storage = SQLAStorage(db=db)
db.create_all()
blog_engine = BloggingEngine(app, storage)

migrate = Migrate(app, db)
login = LoginManager(app)
login.login_view = 'login'


from app import routes, models, errors

###config.py

import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
BLOGGING_URL_PREFIX = "/blog"
BLOGGING_SITEURL = "http://localhost:5000"
BLOGGING_SITENAME = "Testing"
BLOGGING_KEYWORDS = ["blog", "meta", "keywords"]
FILEUPLOAD_IMG_FOLDER = "fileupload"
FILEUPLOAD_PREFIX = "/fileupload"
FILEUPLOAD_ALLOWED_EXTENSIONS = ["png", "jpg", "jpeg", "gif"]
BLOGGING_TWITTER_USERNAME = "@xyz"

###models.py
from datetime import datetime
from app import db, login, blog_engine
from flask_login import UserMixin
from werkzeug.security import generate_password_hash, check_password_hash


class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)

def __repr__(self):
return '<User %r>' % self.username

def get_name(self):
return self.username

def set_password(self, password):
self.password_hash = generate_password_hash(password)

def check_password(self, password):
return check_password_hash(self.password_hash, password)

@login.user_loader
@blog_engine.user_loader
def load_user(user_id):
user = User.query.filter_by(id=user_id).first()
print (user_id, user.get_name())
return user


Any help would be awesome, I've been wrestling with this persona