Where did the psycopg2 name come from? - psycopg2

Every time I write
import psycopg2
I wonder why it is called psycopy2, because I always forget the true spelling? Is there any history I can know so that I could remember it clearly?

The quote below is by Federico Di Gregorio, the author of the package. After dealing with a badly written python+postgres driver in the company he worked for at the time, he wrote his own simplified version (psycopg) and:
I wanted to call it psychopg (a reference to their psychotic driver)
but I typed the name wrong.
I'm assuming the psycho in what would have been psychopg stands for psychotic while pg stands for postgres. So 'psychotic postgres'.
Source

Related

Turning a Dataframe into a Series with .squeeze("columns")

I'm studying how to work with data right now and so I'm following along with a tutorial for working with Time Series data. Among the first things he does is read_csv on the file path and then use squeeze=True to read it as a Series. Unfortunately (and as you probably know), squeeze has been depricated from read_csv.
I've been reading documentation to figure out how to read a csv as a series, and everything I try fails. The documentation itself says to use pd.read_csv('filename').squeeze('columns') , but, when I check the type afterward, it is always still a Dataframe.
I've looked up various other methods online, but none of them seem to work. I'm doing this on a Jupyter Notebook using Python3 (which the tutorial uses as well).
If anyone has any insights into why I cannot change the type in this way, I would appreciate it. I'm not sure if I've misunderstood the tutorial altogether or if I'm not understanding the documentation.
I do literally type .squeeze("columns") when I write this out because when I write a column name or index, it fails completely. Am I doing that correctly? Is this the correct method or am I missing a better method?
Thanks for the help!
shampoo = pd.read_csv('shampoo_with_exog.csv',index_col= [0], parse_dates=True).squeeze("columns")
I would start with this...
#Change the the stuff between the '' to the entire file path of where your csv is located.
df = pd.read_csv(r'c:\user\documents\shampoo_with_exog.csv')
To start this will name your dataframe as df which is kind of the unspoken industry standard the same as pd for pandas.
Additionally, this will allow you to use a "raw" (the r) string which makes it easier to insert directories into your python code.
Once you are are able to successfully run this you can simply put df in a separate cell in jupyter. This will show you what your data looks like from your CSV. Once you have done all that you can start manipulating your data. While you can use the fancy stuff in pd.read_csv() I mostly just try to get the data and manipulate it from the code itself. Obviously there are reasons not to only do a pd.read_csv but as you progress you can start adding things here and there. I almost never use squeeze although I'm sure there will be those here to comment stating how "essential" it is for whatever the specific case might be.

How to import module in Python

import hashing power of 16
The hashing power of 16.py is the same with my current working directory. The pop-up message is
SyntaxError: invalid syntax
How can I solve this issue?
sys.path.append(working directory)
This above is not working either.
As far as i know, you should remove spaces from filename, because that way it will not work.
If you really want to do this...
Try something like
hashing_power_of_16 = __import__("hashing power of 16")
Then you can refer by hashing_power_of_16 to that module.
But using spaces anywhere in naming is bad idea.
You need to rename your class. hashing power of 16 is not a recomended name. You can rename it something like hashingPowerOfSixteen. After that you can import the class.
I think Python identifiers can't have spaces. So my guess would be it's not working because your file name is having blank spaces. Rename your file(to have a name without spaces) and try again.
Thanks
import "name of the module"
in case if the module name is lengthy, u can do it as:
import "name of the module" as "short acronym"
For example
I have a module named "Mysq" which is nothing but a python file with a function that returns square of the number.
Now if want to use it another program (make sure that you are working in the same directory)
import Mysq as ps print(ps.sq(3))

Importing modules in python 3.5

I am using python 3.5.
I want to import some modules:
One, with some constants, for example:
m.constant1 = 2,3
m.constant2 = 4,5
Another one with some functions definitions, for example:
def b_initialize (model,i) :
return m.binit
And the use this information in my main program,
how can I do it??
Thanks in advance,
Michael
In the first lines of your program, write import m
and to access constant1 and constant2, you can write m.constant1 and m.constant2
Alternatively, in the beginning you can write from m import constant1, constant2. From then on, you can access the constant1 and constant2 just by writing their names, without the m.
As for the function definitions, I can't help you if I don't know the module name, but you if you do, just write modulename.functionname.
This is used very commonly and has most likely been asked and answered on the internet before, though, so make sure to search thoroughly before asking on Stack Overflow.

How to read chrome extension development documentation?

Looks like the documentation is stable. But I am a bit frustrated about its conventions. For example, what is the field name in the following screenshot? Any one help point where the guideline for reading the documentation is?
name in this case is an optional name you can use for the port. You use it like this:
var port = chrome.runtime.connect({name:"testName"});
After that, port.name would be "testName".
connectInfo is defined to be an object meaning that any field listed indented under it, like name is, is a part of it.

What's the name for hyphen-separated case?

This is PascalCase: SomeSymbol
This is camelCase: someSymbol
This is snake_case: some_symbol
So my questions is whether there is a widely accepted name for this: some-symbol? It's commonly used in url's.
There isn't really a standard name for this case convention, and there is disagreement over what it should be called.
That said, as of 2019, there is a strong case to be made that kebab-case is winning:
https://trends.google.com/trends/explore?date=all&q=kebab-case,spinal-case,lisp-case,dash-case,caterpillar-case
spinal-case is a distant second, and no other terms have any traction at all.
Additionally, kebab-case has entered the lexicon of several javascript code libraries, e.g.:
https://lodash.com/docs/#kebabCase
https://www.npmjs.com/package/kebab-case
https://v2.vuejs.org/v2/guide/components-props.html#Prop-Casing-camelCase-vs-kebab-case
However, there are still other terms that people use. Lisp has used this convention for decades as described in this Wikipedia entry, so some people have described it as lisp-case. Some other forms I've seen include caterpillar-case, dash-case, and hyphen-case, but none of these is standard.
So the answer to your question is: No, there isn't a single widely-accepted name for this case convention analogous to snake_case or camelCase, which are widely-accepted.
It's referred to as kebab-case. See lodash docs.
It's also sometimes known as caterpillar-case
This is the most famous case and It has many names
kebab-case: It's the name most adopted by official software
caterpillar-case
dash-case
hyphen-case or hyphenated-case
lisp-case
spinal-case
css-case
slug-case
friendly-url-case
As the character (-) is referred to as "hyphen" or "dash", it seems more natural to name this "dash-case", or "hyphen-case" (less frequently used).
As mentioned in Wikipedia, "kebab-case" is also used. Apparently (see answer) this is because the character would look like a skewer... It needs some imagination though.
Used in lodash lib for example.
Recently, "dash-case" was used by
Angular (https://angular.io/guide/glossary#case-types)
NPM modules
https://www.npmjs.com/package/case-dash (removed ?)
https://www.npmjs.com/package/dasherize
Adding the correct link here Kebab Case
which is All lowercase with - separating words.
I've always called it, and heard it be called, 'dashcase.'
There is no standardized name.
Libraries like jquery and lodash refer it as kebab-case. So does Vuejs javascript framework. However, I am not sure whether it's safe to declare that it's referred as kebab-case in javascript world.
I've always known it as kebab-case.
On a funny note, I've heard people call it a SCREAM-KEBAB when all the letters are capitalized.
Kebab Case Warning
I've always liked kebab-case as it seems the most readable when you need whitespace. However, some programs interpret the dash as a minus sign, and it can cause problems as what you think is a name turns into a subtraction operation.
first-second // first minus second?
ten-2 // ten minus two?
Also, some frameworks parse dashes in kebab cased property. For example, GitHub Pages uses Jekyll, and Jekyll parses any dashes it finds in an md file. For example, a file named 2020-1-2-homepage.md on GitHub Pages gets put into a folder structured as \2020\1\2\homepage.html when the site is compiled.
Snake_case vs kebab-case
A safer alternative to kebab-case is snake_case, or SCREAMING_SNAKE_CASE, as underscores cause less confusion when compared to a minus sign.
I'd simply say that it was hyphenated.
Worth to mention from abolish:
https://github.com/tpope/vim-abolish/blob/master/doc/abolish.txt#L152
dash-case or kebab-case
In Salesforce, It is referred as kebab-case. See below
https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.js_props_names
Here is a more recent discombobulation. Documentation everywhere in angular JS and Pluralsight courses and books on angular, all refer to kebab-case as snake-case, not differentiating between the two.
Its too bad caterpillar-case did not stick because snake_case and caterpillar-case are easily remembered and actually look like what they represent (if you have a good imagination).
My ECMAScript proposal for String.prototype.toKebabCase.
String.prototype.toKebabCase = function () {
return this.valueOf().replace(/-/g, ' ').split('')
.reduce((str, char) => char.toUpperCase() === char ?
`${str} ${char}` :
`${str}${char}`, ''
).replace(/ * /g, ' ').trim().replace(/ /g, '-').toLowerCase();
}
This casing can also be called a "slug", and the process of turning a phrase into it "slugify".
https://hexdocs.pm/slugify/Slug.html

Resources