Skip to content

Commit 2436009

Browse files
Merge pull request #243 from UIUCLibrary/dev
Dev
2 parents ce605a0 + 840bca7 commit 2436009

File tree

11 files changed

+109
-158
lines changed

11 files changed

+109
-158
lines changed

Jenkinsfile

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ pipeline {
855855
withCredentials([string(credentialsId: params.SONARCLOUD_TOKEN, variable: 'token')]) {
856856
sh(
857857
label: 'Running Sonar Scanner',
858-
script: 'uv run pysonar -t $token -Dsonar.projectVersion=$VERSION -Dsonar.buildString="$BUILD_TAG" -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=$(grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.build-wrapper-output=build/build_wrapper_output_directory -Dsonar.python.coverage.reportPaths=./reports/coverage/coverage-python.xml -Dsonar.cfamily.cobertura.reportPaths=reports/coverage/coverage_cpp.xml ' + (env.CHANGE_ID ? '-Dsonar.pullrequest.key=$CHANGE_ID -Dsonar.pullrequest.base=$CHANGE_TARGET' : '-Dsonar.branch.name=$BRANCH_NAME')
858+
script: 'uv run pysonar -t $token -Dsonar.projectVersion=$VERSION -Dsonar.buildString="$BUILD_TAG" -Dsonar.cfamily.cache.enabled=false -Dsonar.cfamily.threads=$(grep -c ^processor /proc/cpuinfo) -Dsonar.cfamily.compile-commands=build/build_wrapper_output_directory/compile_commands.json -Dsonar.python.coverage.reportPaths=./reports/coverage/coverage-python.xml -Dsonar.cfamily.cobertura.reportPaths=reports/coverage/coverage_cpp.xml ' + (env.CHANGE_ID ? '-Dsonar.pullrequest.key=$CHANGE_ID -Dsonar.pullrequest.base=$CHANGE_TARGET' : '-Dsonar.branch.name=$BRANCH_NAME')
859859
)
860860
}
861861
}
@@ -884,25 +884,7 @@ pipeline {
884884
}
885885
post{
886886
cleanup{
887-
cleanWs(
888-
patterns: [
889-
[pattern: '.coverage/', type: 'INCLUDE'],
890-
[pattern: '.eggs/', type: 'INCLUDE'],
891-
[pattern: '.mypy_cache/', type: 'INCLUDE'],
892-
[pattern: '.pytest_cache/', type: 'INCLUDE'],
893-
[pattern: 'dist/', type: 'INCLUDE'],
894-
[pattern: 'build/', type: 'INCLUDE'],
895-
[pattern: '*.dist-info/', type: 'INCLUDE'],
896-
[pattern: 'logs/', type: 'INCLUDE'],
897-
[pattern: 'reports/', type: 'INCLUDE'],
898-
[pattern: 'generatedJUnitFiles/', type: 'INCLUDE'],
899-
[pattern: 'py3exiv2bind/*.so', type: 'INCLUDE'],
900-
[pattern: '**/__pycache__/', type: 'INCLUDE'],
901-
[pattern: 'venv/', type: 'INCLUDE'],
902-
],
903-
notFailBuild: true,
904-
deleteDirs: true
905-
)
887+
sh "git clean -dfx"
906888
}
907889
}
908890
}

src/py3exiv2bind/core/glue/ExifStrategy.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
#include "ExifStrategy.h"
66
#include "make_dictionary.h"
7-
#include <iostream>
7+
#include <string>
8+
#include <unordered_map>
9+
10+
#include <exiv2/image.hpp>
811

912
std::unordered_map<std::string, std::string> ExifStrategy::load(const Exiv2::Image &image){
1013
return make_dictionary(image.exifData());

src/py3exiv2bind/core/glue/IPTC_Strategy.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44

55
#include "IPTC_Strategy.h"
66
#include "make_dictionary.h"
7-
#include <exiv2/error.hpp>
8-
#include <iostream>
7+
8+
#include <exiv2/image.hpp>
9+
10+
#include <string>
11+
#include <unordered_map>
12+
913

1014
std::unordered_map<std::string, std::string> IPTC_Strategy::load(const Exiv2::Image &image){
1115
return make_dictionary(image.iptcData());

src/py3exiv2bind/core/glue/Image.cpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,28 @@
33
//
44

55
#include "Image.h"
6+
67
#include "MetadataProcessor.h"
7-
#include "glue.h"
8+
#include "MetadataStrategies.h"
89
#include "glue_execeptions.h"
9-
#include <cassert>
10+
1011
#include <exiv2/error.hpp>
12+
#include <exiv2/image.hpp>
13+
#include <exiv2/types.hpp>
14+
15+
#include <cassert>
1116
#include <iostream>
17+
#include <list>
18+
#include <memory>
1219
#include <sstream>
20+
#include <stdexcept>
1321
#include <string>
22+
#include <unordered_map>
1423

15-
std::ostringstream warning_log;
16-
std::ostringstream error_log;
24+
namespace {
25+
std::ostringstream warning_log;
26+
std::ostringstream error_log;
27+
} // namespace
1728

1829
Image::Image(const std::string &filename) : filename(filename) {
1930
warning_log.clear();
@@ -22,17 +33,18 @@ Image::Image(const std::string &filename) : filename(filename) {
2233
error_log.str("");
2334
try {
2435
Exiv2::LogMsg::setHandler([](int level, const char *msg) {
25-
switch((Exiv2::LogMsg::Level)level){
36+
switch(static_cast<Exiv2::LogMsg::Level>(level)){
2637

27-
case Exiv2::LogMsg::debug:break;
28-
case Exiv2::LogMsg::info:break;
38+
case Exiv2::LogMsg::debug:
39+
case Exiv2::LogMsg::info:
40+
case Exiv2::LogMsg::mute:
41+
break;
2942
case Exiv2::LogMsg::warn:
3043
warning_log << msg;
3144
break;
3245
case Exiv2::LogMsg::error:
3346
error_log << msg;
3447
break;
35-
case Exiv2::LogMsg::mute:break;
3648
default: break;
3749
}
3850
});
@@ -43,8 +55,8 @@ Image::Image(const std::string &filename) : filename(filename) {
4355
std::cerr << e.what() << std::endl;
4456
throw std::runtime_error(e.what());
4557
}
46-
std::string warning_msg = warning_log.str();
47-
std::string error_msg = error_log.str();
58+
const std::string warning_msg = warning_log.str();
59+
const std::string error_msg = error_log.str();
4860

4961
if(!warning_msg.empty()){
5062
warning_logs.push_back(warning_msg);

src/py3exiv2bind/core/glue/MetadataProcessor.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22
// Created by hborcher on 10/11/2017.
33
//
44

5-
#include "MetadataProcessor.h"
65
#include "ExifStrategy.h"
76
#include "IPTC_Strategy.h"
7+
#include "MetadataProcessor.h"
8+
#include "MetadataStrategies.h"
89
#include "XmpStrategy.h"
910

11+
#include <exiv2/image.hpp>
12+
13+
#include <memory>
14+
#include <string>
15+
#include <unordered_map>
16+
1017
const std::unordered_map<std::string, std::string> &MetadataProcessor::getMetadata() const {
1118
return metadata;
1219
}

src/py3exiv2bind/core/glue/MetadataProcessor.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
#define PYEXIV2BIND_METADATA_PROCESSOR_H
77

88

9-
#include <string>
10-
#include <map>
119
#include <memory>
10+
#include <string>
11+
#include <unordered_map>
12+
1213
#include "AbsMetadataStrategy.h"
1314
#include "MetadataStrategies.h"
1415

@@ -19,7 +20,7 @@ struct MetadataProcessor {
1920
public:
2021
void build(const Exiv2::Image &image);
2122
const std::unordered_map<std::string, std::string> &getMetadata() const;
22-
void set_output_format(MetadataStrategies);
23+
void set_output_format(MetadataStrategies metadata_type);
2324
};
2425

2526

src/py3exiv2bind/core/glue/XmpStrategy.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44

55
#include "XmpStrategy.h"
66
#include "make_dictionary.h"
7-
#include <iostream>
7+
8+
#include <exiv2/image.hpp>
9+
10+
#include <string>
11+
#include <unordered_map>
12+
813
std::unordered_map<std::string, std::string> XmpStrategy::load(const Exiv2::Image &image){
914
return make_dictionary(image.xmpData());
1015
}

src/py3exiv2bind/core/glue/glue.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,32 @@
22
// Created by hborcher on 10/4/2017.
33
//
44
#include "glue.h"
5-
#include <exiv2/exiv2.hpp>
5+
6+
7+
#include <exiv2/exif.hpp>
8+
#include <exiv2/image.hpp>
9+
#include <exiv2/version.hpp>
10+
11+
#include <memory>
12+
#include <string>
13+
614
using Exiv2::Image;
715
using Exiv2::ImageFactory;
16+
817
std::string exiv2_version() {
918
return Exiv2::versionString();
1019
}
1120

1221

13-
void set_dpi(const std::string &filename, int x, int y){
14-
std::unique_ptr<Exiv2::Image> image = ImageFactory::open(filename);
22+
void set_dpi(const std::string &filename, int x_res, int y_res){
23+
const std::unique_ptr<Exiv2::Image> image = ImageFactory::open(filename);
1524

1625
image->readMetadata();
1726

1827
Exiv2::ExifData metadata = image->exifData();
1928

20-
metadata["Exif.Image.XResolution"] = Exiv2::URational(x, 1);
21-
metadata["Exif.Image.YResolution"] = Exiv2::URational(y, 1);
29+
metadata["Exif.Image.XResolution"] = Exiv2::URational(x_res, 1);
30+
metadata["Exif.Image.YResolution"] = Exiv2::URational(y_res, 1);
2231
metadata["Exif.Image.ResolutionUnit"] = 2;
2332
image->setExifData(metadata);
2433
image->writeMetadata();

src/py3exiv2bind/core/glue/glue.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
#ifndef SUPERBUILD_GLUE_H
66
#define SUPERBUILD_GLUE_H
77

8-
#include <string>
98
#include <map>
9+
#include <string>
1010

1111
struct metadata_chunk {
1212

@@ -19,6 +19,6 @@ struct metadata_chunk {
1919

2020
std::string exiv2_version();
2121

22-
void set_dpi(const std::string &filename, int x, int y);
22+
void set_dpi(const std::string &filename, int x_res, int y_res);
2323

2424
#endif //SUPERBUILD_GLUE_H

tests/test-core.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ TEST_CASE("bad tiff file with set_dpi raises"){
7575
corruptedFile.open(bad_file, std::ios::binary);
7676
OtherDataFormat packet{3, 3, 3, 1.2};
7777
int number = 444;
78-
const char header = 'I';
78+
constexpr char header = 'I';
7979
corruptedFile.write(&header, sizeof(char ));
8080
corruptedFile.write(&header, sizeof(char ));
81-
corruptedFile.write((char*) &number, sizeof(int ));
82-
corruptedFile.write((char *) &packet, sizeof(OtherDataFormat));
81+
corruptedFile.write(reinterpret_cast<char *>(&number), sizeof(int ));
82+
corruptedFile.write(reinterpret_cast<char *>(&packet), sizeof(OtherDataFormat));
8383
corruptedFile.close();
8484
REQUIRE_THROWS_AS(set_dpi(bad_file, 100, 100), Exiv2::Error);
8585
}

0 commit comments

Comments
 (0)