This PR adds a pre-commit config for formatting python files. To use pre-commit, make sure it is installed first and then install the config.
pip install pre-commit
pre-commit install
Now, any time you make a commit the code formatters will be run. Note that if any formatting is applied, you will need to re-add any changed files to the commit.
I also ran pyupgrade --py36-plus since pymatgen is python3.6+ anyway. This has fixed common python patterns that are no longer necessary for modern versions of python. See pyupgrade for more details.
@kylebystrom I've only included python code formatting but I can also add C code formatting using clang-format. If you're interested let me know. I've posted an example of the formatting below:
existing c code
void free_transform_spline_list(transform_spline_t* transforms, int num_transforms) {
for (int i = 0; i < num_transforms; i++) {
free(transforms[i].transform);
free(transforms[i].spline[0]);
free(transforms[i].spline[1]);
free(transforms[i].spline[2]);
free(transforms[i].spline);
}
free(transforms);
}
void free_density_ft_list(density_ft_t* densities, int total_projs) {
int total_densities = total_projs * total_projs;
for (int i = 0; i < total_densities; i++) {
int num_transforms = (densities[i].l1 + densities[i].l2
- abs(densities[i].l1 - densities[i].l2)) / 2 + 1;
free(densities[i].ks);
free_transform_spline_list(densities[i].transforms, num_transforms);
}
free(densities);
}
void free_density_ft_elem_list(density_ft_elem_t* elems, int num_elems) {
for (int i = 0; i < num_elems; i++) {
free_density_ft_list(elems[i].densities, elems[i].total_projs);
}
free(elems);
}
Reformatted, style=llvm
void free_transform_spline_list(transform_spline_t *transforms,
int num_transforms) {
for (int i = 0; i < num_transforms; i++) {
free(transforms[i].transform);
free(transforms[i].spline[0]);
free(transforms[i].spline[1]);
free(transforms[i].spline[2]);
free(transforms[i].spline);
}
free(transforms);
}
void free_density_ft_list(density_ft_t *densities, int total_projs) {
int total_densities = total_projs * total_projs;
for (int i = 0; i < total_densities; i++) {
int num_transforms = (densities[i].l1 + densities[i].l2 -
abs(densities[i].l1 - densities[i].l2)) /
2 +
1;
free(densities[i].ks);
free_transform_spline_list(densities[i].transforms, num_transforms);
}
free(densities);
}
void free_density_ft_elem_list(density_ft_elem_t *elems, int num_elems) {
for (int i = 0; i < num_elems; i++) {
free_density_ft_list(elems[i].densities, elems[i].total_projs);
}
free(elems);
}
This PR adds a pre-commit config for formatting python files. To use pre-commit, make sure it is installed first and then install the config.
Now, any time you make a commit the code formatters will be run. Note that if any formatting is applied, you will need to re-add any changed files to the commit.
I also ran
pyupgrade --py36-plus
since pymatgen is python3.6+ anyway. This has fixed common python patterns that are no longer necessary for modern versions of python. See pyupgrade for more details.@kylebystrom I've only included python code formatting but I can also add C code formatting using clang-format. If you're interested let me know. I've posted an example of the formatting below:
existing c code
Reformatted, style=llvm